【发布时间】:2021-09-09 23:19:35
【问题描述】:
我有一个看起来像这样的 jQuery 选择器...
$("input:checkbox").click(function(event) {
// DO STUFF HERE
}
在我被要求添加另一个与原始复选框无关的复选框之前,一切都运行良好。如何为除一个以外的所有复选框创建选择器?谢谢。
【问题讨论】:
我有一个看起来像这样的 jQuery 选择器...
$("input:checkbox").click(function(event) {
// DO STUFF HERE
}
在我被要求添加另一个与原始复选框无关的复选框之前,一切都运行良好。如何为除一个以外的所有复选框创建选择器?谢谢。
【问题讨论】:
$('input:checkbox:not("#thatCheckboxId")').click(function(event) {
// DO STUFF HERE
}
只需给有问题的复选框一个唯一的id=""
【讨论】:
$('input:checkbox:not("#thatCheckboxId")'),这样效率更高:jsperf.com/jquery-css3-not-vs-not
您可以执行以下操作:
$("input:checkbox").not(":eq(0)")
作为您想要的复选框的索引“0”(在这种情况下是 DOM 上的第一个)
【讨论】:
嗯..我们需要了解更多关于 HTML 的具体答案,但我可以想到两种方法。
1) 如果您知道不想要的名称,请使用not 删除该名称
$("input:checkbox").not('#the_new_checkbox_id').click(function(event) {
// DO STUFF HERE
}
2) 使用正确输入的共同点来选择它们。
$("input:checkbox[name=whatItIsNamed]").click(function(event) {
// DO STUFF HERE
}
【讨论】:
如果所有复选框都在另一个元素内,您可以选择该元素内的所有复选框。
这是一个带有一个父元素的示例。
<div class="test"><input type="checkbox"><input type="checkbox"></div>
下面的 jQuery 也适用于多个 div:
<div class="test"><input type="checkbox"><input type="checkbox"></div>
<div class="test"><input type="checkbox"><input type="checkbox"></div>
jQuery:
$('.test input:checkbox')
只选择任何具有“test”类的元素中的复选框。
-Sunjay03
【讨论】:
我使用了这个 - 不想选中以“订阅”命名的复选框,所以我使用了“$(':checkbox:not(checkbox[name=nameofyourcheckboxyoudontwantto]').each(function(){”
$('#checked_all').click(function (event) {
var checkbox = $(".compare_checkbox").is(":checked");
if (checkbox) {
// Iterate each checkbox
$(':checkbox:not(:checkbox[name=subscription])').each(function () {
this.checked = false;
});
} else {
$(':checkbox:not(:checkbox[name=subscription])').each(function () {
this.checked = true;
});
} });
【讨论】: