Как получить значение CSS элемента в массиве?

0

У меня есть список и хочу получить значение фона последнего элемента.

    <ul>
        <li style="background: red;"></li>
        <li style="background: blue;"></li>
        <li style="background: yellow;"></li>
        <li style="background: white;"></li>
    </ul>

и я использую этот сценарий jQuery

var color = $( 'ul li' ).get(-1).css('background');

но он не работает. Я искал его, но ничего не нашел.
Может ли кто-нибудь помочь мне разобраться с проблемой.

EDITED: это не работает над IE, но я ошибаюсь. но не иначе?

$( 'ul li:last' ).css('background');
Теги:
arrays

4 ответа

2
Лучший ответ

Все ответы, приведенные выше, будут содержать пустую строку.

Пожалуйста, проверьте:

var color = $('ul li').eq(-1).css('background-color');

Фактически, вы устанавливаете фоновый цвет, без фона.

JsFiddle, чтобы доказать: http://jsfiddle.net/7gxkp/

  • 0
    да, это сработало. Спасибо всем.
  • 0
    Пожалуйста. Пожалуйста, отметьте вопрос как ответ.
2

Ты можешь сделать:

 var color = $( 'ul li:last' ).css('background');

Причина get(-1) возвращает элемент DOM, который не имеет метода css, css - это метод объекта jquery, а не элемент Native DOM.

или выполните:

var color = $( 'ul li' ).get(-1).style.background;

Вы также можете использовать jquery .last()

 var color = $( 'ul li' ).last().css('background');

Обратите внимание, что jquery css использует getComputerStyle поэтому вы можете получить все свойства фона элемента (по умолчанию также пользовательский агент), а не только цвет. Если вам нужен только цвет с помощью jquery css вы можете явно указать .css('background-color').

  • 0
    Я не хочу использовать этот кусок кода, я не знаю почему, но он не работает в IE
  • 1
    @aliA Он должен работать в IE, если он не работает, значит, вы делаете что-то не так.
Показать ещё 4 комментария
2

Причина, по которой ваш код не работает, заключается в том, что get() возвращает узел DOM, который не имеет функции css(). Вы ищете это:

$( 'ul li' ).eq(-1).css('background');
1

Я не уверен в использовании get, но вы можете использовать селектор CSS с вашим jquery, чтобы сделать это, как

var color = $( 'ul li:last-child' ).css('background');

Это должно быть проще! Дайте мне знать, если это сработает для вас! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню