jQuery - как выбрать все флажки, кроме определенного?

У меня есть селектор jQuery, который выглядит так ...

$("input:checkbox").click(function(event) {
  // DO STUFF HERE
}

все работало хорошо, пока меня не попросили добавить еще один флажок, который не имеет ничего общего с оригинальными флажками. Как создать селектор для всех флажков, кроме одного? Спасибо.

4 ответов


$('input:checkbox:not("#thatCheckboxId")').click(function(event) {
  // DO STUFF HERE
}

просто установите флажок в вопросе уникальный id=""


вы можете сделать следующее:

$("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 ниже также работает с несколькими divs:

<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