gpt4 book ai didi

javascript - 如何检查除特殊复选框外的所有复选框?

转载 作者:行者123 更新时间:2023-11-30 08:19:44 25 4
gpt4 key购买 nike

如果我想检查除一项以外的所有项目 this way有效,但我想排除不止一项,例如:

var ingore_ids = [1,2,3];

那么这段代码就不行了:

$('#checkAll').click(function () {
$('input:checkbox').not(this).not(ignore_ids).prop('checked', this.checked);)
});

我该如何解决这个问题?

最佳答案

您的逻辑存在问题,not() 期望从当前集合中排除一个选择器或元素数组。

要解决此问题,您可以使用 join() 从数组中包含的 id 值构建一个选择器,如下所示:

var ingore_ids = [1, 2, 3];

$('#checkAll').click(function() {
$('input:checkbox').not('#' + ingore_ids.join(',#')).prop('checked', this.checked);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label>
<input type="checkbox" id="checkAll" /> check some...<br />
</label>
<input type="checkbox" id="1" /><br />
<input type="checkbox" id="2" /><br />
<input type="checkbox" id="3" /><br />
<input type="checkbox" id="4" /><br />
<input type="checkbox" id="5" /><br />
<input type="checkbox" id="6" /><br />

另一种方法是为 not() 提供一个函数,它检查当前复选框的 id 是否不在数组中:

var ingore_ids = [1,2,3];

$('#checkAll').click(function() {
$('input:checkbox').not(function(i, el) {
return ingore_ids.indexOf(parseInt(el.id, 10)) !== -1;
}).prop('checked', this.checked);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label>
<input type="checkbox" id="checkAll" /> check some...<br />
</label>
<input type="checkbox" id="1" /><br />
<input type="checkbox" id="2" /><br />
<input type="checkbox" id="3" /><br />
<input type="checkbox" id="4" /><br />
<input type="checkbox" id="5" /><br />
<input type="checkbox" id="6" /><br />

关于javascript - 如何检查除特殊复选框外的所有复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55687203/

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