如何获取数组内元素的css值?

时间:2013-10-02 18:12:11

标签: jquery css arrays

我有一个列表,想要获取最后一个元素的背景值。

    <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');

但它不起作用。我用Google搜索,但没有找到 任何人都可以帮我找出问题。

编辑:这不适用于IE,我的错误。但是没有其他办法吗?

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

4 个答案:

答案 0 :(得分:2)

你可以这样做:

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

原因是get(-1)返回没有css方法的DOM元素,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')

答案 1 :(得分:2)

您的代码不起作用的原因是因为get()返回没有css()函数的DOM节点。你正在寻找这个:

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

答案 2 :(得分:2)

上面的所有答案都可能输出空字符串。

请检查:

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

实际上,您正在设置背景颜色,而不是背景本身。

JsFiddle证明:http://jsfiddle.net/7gxkp/

答案 3 :(得分:1)

我不确定get的用法,但你可以在你的jquery中使用CSS选择器来实现它

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

应该更简单!如果这对您有用,请告诉我! :)