我有一个无序列表和该列表中li
标记的索引。我必须使用该索引获取li
元素并更改其背景颜色。这可能不循环整个列表吗?我的意思是,是否有任何方法可以实现此功能?
这是我的代码,我相信它会起作用......
<script type="text/javascript">
var index = 3;
</script>
<ul>
<li>India</li>
<li>Indonesia</li>
<li>China</li>
<li>United States</li>
<li>United Kingdom</li>
</ul>
<script type="text/javascript">
// I want to change bgColor of selected li element
$('ul li')[index].css({'background-color':'#343434'});
// Or, I have seen a function in jQuery doc, which gives nothing to me
$('ul li').get(index).css({'background-color':'#343434'});
</script>
答案 0 :(得分:231)
$(...)[index] // gives you the DOM element at index
$(...).get(index) // gives you the DOM element at index
$(...).eq(index) // gives you the jQuery object of element at index
DOM对象没有css
函数,使用最后一个......
$('ul li').eq(index).css({'background-color':'#343434'});
<强>文档:强>
.get(index)
返回:元素
.eq(index)
返回:jQuery
答案 1 :(得分:17)
您可以使用jQuery的.eq()
方法获取具有特定索引的元素。
$('ul li').eq(index).css({'background-color':'#343434'});
答案 2 :(得分:10)
您可以使用eq method or selector:
$('ul').find('li').eq(index).css({'background-color':'#343434'});
答案 3 :(得分:0)
还有另一种使用CSS :nth-of-type
伪类在jQuery中通过索引获取元素的方法:
<script>
// css selector that describes what you need:
// ul li:nth-of-type(3)
var selector = 'ul li:nth-of-type(' + index + ')';
$(selector).css({'background-color':'#343434'});
</script>
您可以使用其他selectors来与jQuery匹配您需要的任何元素。
答案 4 :(得分:-1)
您可以跳过jquery并使用CSS样式标记:
<ul>
<li>India</li>
<li>Indonesia</li>
<li style="background-color:#343434;">China</li>
<li>United States</li>
<li>United Kingdom</li>
</ul>