Jquery 查找div中具有特定类的所有元素

Jquery 查找div中具有特定类的所有元素,jquery,Jquery,我正在尝试选择父div中具有类“selected”的所有元素。它必须仅限于此div中的元素,因为html中的某些元素也具有此类,但我们不想影响它们 <div id=1> <ul> <li class="list all">ALL</li> <li class="list selected">1</li> <li class="list">2</li&g

我正在尝试选择父div中具有类“selected”的所有元素。它必须仅限于此div中的元素,因为html中的某些元素也具有此类,但我们不想影响它们

<div id=1>
    <ul>
        <li class="list all">ALL</li>
        <li class="list selected">1</li>
        <li class="list">2</li>
    </ul>
    <ul>
        <li class="list">3</li>
        <li class="list selected">4</li>
    </ul>
    <ul>
        <li class="list selected">5</li>
        <li class="list selected">6</li>
    </ul>
</div>
<div id=2>
    <ul>
        <li class="list all">ALL</li>
        <li class="list">1</li>
        <li class="list">2</li>
    </ul>
    <ul>
        <li class="list selected">3</li>
        <li class="list">4</li>
    </ul>
    <ul>
        <li class="list">5</li>
        <li class="list selected">6</li>
    </ul>
</div>

我认为我的each循环可能是错误的,我不确定如何在包含的div中执行每个循环。

尝试以下操作:不要筛选每个
.selected
,而是可以获取其父
div
,然后使用
class=“selected”
查找所有元素以删除
selected

$('.all').click(function(){
  $(this).closest('div').find('.selected').removeClass('selected');             
  $(this).addClass('selected');
});

单击中的
$('.selected')
代码不被父项过滤。它所做的是找到
div
,它是每个
所选
的父类。匹配并删除该类。这实际上是一个更简单的解决方案:

$('.all').click(function() {
  $('.selected', $(this).closest('div')).removeClass('selected');
  $(this).addClass('selected');
});
您可以使用:

$('.all').click(function(){
   $(this).closest('div').find('.selected').removeClass('selected');
   $(this).addClass('selected');
});

find是否与每个都一样?i、 e.选择其试图“查找”的所有元素?是,查找将使用class=“selected”选择父div内的所有元素,并从所有找到的元素中删除class selected。看到这个了吗
$('.all').click(function(){
   $(this).closest('div').find('.selected').removeClass('selected');
   $(this).addClass('selected');
});