0

I have a list, and want to get the value of background of the last element.

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

and I use this jQuery script

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

but it's not working. I googled it, but nothing found.
Could any one help me to find out the problem.

EDITED: this is not working on IE, my be I am wrong. but isn't any other way?

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

4 回答 4

2

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

$( 'ul li' ).eq(-1).css('background');
于 2013-10-02T18:14:50.760 回答
2

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

请检查:

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

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

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

于 2013-10-02T18:20:47.633 回答
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')明确指定。

于 2013-10-02T18:13:03.003 回答
1

我不确定 get 的用法,但是您可以将 CSS 选择器与您的 jquery 一起使用来做到这一点

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

应该更简单!让我知道这是否适合您!:)

于 2013-10-02T18:13:43.137 回答