我有几列(ul)包含列表(li)。当我点击其中一个元素时,我想首先在列表中找到一个元素' all'
<div id=1>
<ul>
<li class="list all">ALL</li>
<li class="list">1</li>
<li class="list">2</li>
</ul>
<ul>
<li class="list">3</li>
<li class="list">4</li>
</ul>
<ul>
<li class="list">5</li>
<li class="list">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">3</li>
<li class="list">4</li>
</ul>
<ul>
<li class="list">5</li>
<li class="list">6</li>
</ul>
</div>
点击任何一个类=&#34;列表&#34;,我想添加类&#34;选择&#34;对于具有class =&#34; all&#34;的元素,但仅适用于同一个包含div的元素。 我似乎无法使用正确的选择器来找到它
parent = $(this).parent().parent().children().$('.all').addClass('selected');
但它不起作用,我不确定如何选择包含div中的第一个ul。
答案 0 :(得分:0)
答案 1 :(得分:0)
尝试,
使用closest
来查找div类型的直接父级,然后使用类all
搜索后代并根据需要为其添加类
$(".all" , $(this).closest('div')).addClass('selected');
答案 2 :(得分:0)
您可以这样做:
$(".list").click(function(){
$(this).closest("div").find(".all").first().addClass("selected")
})
点击 li 父 div ,然后找到课程全部的第一个元素,并添加选定的课程。
修订代码:
$(".list").click(function(){
$(".all.selected").removeClass("selected");
$(this).closest("div").find(".all").first().addClass("selected")
})
答案 3 :(得分:-1)
使用.closest()
查找父div并使用.find()
查找.all
li
parent = $(this).closest('div').find('.all:first').addClass('selected');