使用jQuery选择器选取第一个具有特定类名的子孙元素

5

I have this HTML structure:

    <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时,我想要改变 ul 的第一个子元素(class为.item)的背景颜色。
我尝试了以下代码,但它没有生效:
    $('#click').click(function(){
        $("ul").first('.item').css('background-color','red');
    });

$('ul').find('.item').first() - Blender
3个回答

8

首先,正如文档所示.first不接受选择器。请使用.find.children.first一起使用:

$("ul").children('.item').first().css(...);

这将把所选元素集合缩小到第一个选定的元素。
如果您有多个列表并且想要针对每个列表的第一个li.item元素,可以使用.map:
$("ul").map(function() {
    return $(this).children('.item').get(0);
}).css(...);

1
 $('#click').click(function(){
    $("ul").children('.item').first().css('background-color','red');
});

0
另一种方法是$("li.item").first().css('background-color','red');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接