nextUntil() и childElements
Элементы:
<div><input type="checkbox"></input></div> // <-- checked
<div><input type="checkbox"></input></div> // <-- checked
<div><input type="checkbox"></input></div> // <-- unckecked
<div><input type="checkbox"></input></div> // <-- checked
Я хочу использовать nextUntil() с div-elemets, чтобы снять флажки (дочерние элементы) до box3 (сначала не проверять). Есть ли способ?
3 ответа
Решение
Флажки, находящиеся в разных контейнерах, делают это довольно сложным. Флажки в вашем примере НЕ являются братьями и сестрами друг с другом, поэтому nextUntil (или, скорее, prevUntil) не будет работать здесь.
$("input:checkbox:not(:checked)").parent().prevAll("div").find("input:checkbox").prop("checked", false);
Это предполагает, что это не всегда тот же флажок, который установлен.
$('input[type=checkbox]').each(function () {
if ( ! this.checked ) return false;
this.checked = false;
});
Примечание: возвращение false
изнутри each
обратный вызов прерывается из цикла.
Вот скрипка: http://jsfiddle.net/VCD94/
Вы можете попробовать использовать :lt() селектор вместо:
$("div:lt(3)").find('input').prop('checked', false);
Это добавит checked
собственность для input
элемент внутри div
до 4th
позиция.
я использовал 3
здесь, потому что lt()
основанный на 0 индекс.