gpt4 book ai didi

jQuery 遍历父级和子级

转载 作者:行者123 更新时间:2023-12-01 02:50:44 25 4
gpt4 key购买 nike

我有一个嵌套的未排序列表,我想在父复选框上放置一个单击事件,这样当它被选中时,它会检查所有子复选框,反之亦然。由于某种原因,我只能让选择器获取复选框类型的所有输入...我尝试了多种方法,这就是其中之一。有什么建议吗?

<ul id="parent">
<li>
<input type='checkbox'>first</input>
<ul>
<li><input type='checkbox'>child1</input>
</li>
<li><input type='checkbox'>child2</input>
</li>
</ul>
</li>

<li>
<input type='checkbox'>second</input>
<ul>
<li><input type='checkbox'>child1</input>
</li>
<li><input type='checkbox'>child2</input>
</li>
</ul>
</li>

</ul>

jQuery

   $('#parent > li input[type=checkbox]').click(function() {

var parent = $(this);

if ($(parent).is(':checked')) {
$('li > input[type=checkbox]', parent).each(function() {
$(this).attr('checked', true);
});
}
else {
$('li > input[type=checkbox]', parent).each(function() {
$(this).attr('checked', false);
});
}
});

最佳答案

这应该有效:

首先返回 LI,然后搜索复选框

$('#parent > li input[type=checkbox]').click(function() {

$(this).closest("li").find("ul li input[type=checkbox]").attr('checked', $(this).is(':checked'))

});

但是您可能会考虑添加一些类名称。因此您的代码变得更具可读性。

<li>
<input type='checkbox' class='category'>first</input>
<ul>
<li><input type='checkbox' class='subcategory'>child1</input>
</li>
<li><input type='checkbox' class='subcategory'>child2</input>
</li>
</ul>
</li>

你的 jQuery 看起来像这样:

$("#parent .category").click(function(){

$(this).closest("li").find(".subcategory").attr('checked', $(this).is(':checked'))

});

关于jQuery 遍历父级和子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1625463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com