我有一个列表,想要获取最后一个元素的背景值。
<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');
答案 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');
应该更简单!如果这对您有用,请告诉我! :)