2015-07-30 2 views
1

Я хочу, чтобы иметь возможность автоматически отмечать все флажки на странице ЗА ИСКЛЮЧЕНИЕМ первой.Javascript для выбора всех, кроме первого флажка на странице?

Я нашел Фрагмент кода JavaScript, который выбирает все галочки, что в настоящее время работает для этой цели, но я не хочу, чтобы выбрать первый флажок ...

[].forEach.call(document.querySelectorAll('input[type="checkbox"]'), function (el) {el.checked = true}); 

Я пробовал различные операторы If из приведенного выше фрагмента, все из которых нарушают процесс.

Любая помощь будет оценена по достоинству. Примечание: (я реализую это как букмарклет.)

+0

Просто установите их все после сброса первого, чтобы его не проверять. – brso05

ответ

3

Функция обратного вызова может принимать второй параметр, который является index. Поэтому добавьте условие, которое index !== 0, то есть function (el, index) { if (index !== 0) { el.checked = true; } }.

Или даже function (el, index) { el.checked = index !== 0; }

+0

Спасибо! Это срабатывало так, как я надеялся. – midnightgolfer

0
var checkboxes = document.querySelectorAll('input[type="checkbox"]'); 
for (var i = 0; i < checkboxes.length; ++i) { 
    if (i) 
     checkboxes[i].checked = true; 
} 
+2

Вы также можете объяснить код. –

1

Вы можете изменить селектор запроса добавить :not(:first-child)

[].forEach.call(document.querySelectorAll('input[type="checkbox"]:not(:first-child)'), function (el) {el.checked = true}); 

Fiddle: https://jsfiddle.net/zLhhyy7m/2/

Или с JQuery:

$('input[type="checkbox"]:not(:first)').attr("checked",true); 

Fiddle: https://jsfiddle.net/zLhhyy7m/1/

+0

': first' =/=': first-child' – klenium

+0

@klenium Хорошая точка, обновленная –

Смежные вопросы