我有这个HTML结构:
<ul>
<li>one</li>
<li class="item">two</li>
<li>three</li>
<li class="item">four</li>
<li id="click"> CLICK ME </li>
</ul>
当我点击#click时,我想改变只有第一个具有.item类的ul的孩子的背景颜色
我正在尝试这个,但它不起作用:
$('#click').click(function(){
$("ul").first('.item').css('background-color','red');
});
答案 0 :(得分:5)
首先不接受选择器as you can see in the documentation。将.find
或.children
与.first
:
$("ul").children('.item').first().css(...);
这会将所选元素集减少到第一个选定元素。
如果您有多个列表并希望定位每个列表的第一个li.item
元素,则可以使用.map
:
$("ul").map(function() {
return $(this).children('.item').get(0);
}).css(...);
答案 1 :(得分:1)
$('#click').click(function(){
$("ul").children('.item').first().css('background-color','red');
});
答案 2 :(得分:0)
另一种方法是 。$( “li.item”)第一()的CSS( '背景颜色', '红');