要素:
<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
我想使用带有div元素的nextUntil()取消选中框(子元素)直到框3(首先取消选中)。有办法吗?
答案 0 :(得分:0)
您可以尝试使用 :lt() 选择器:
$("div:lt(3)").find('input').prop('checked', false);
这将在checked
位置之前的input
内添加div
元素的4th
属性。
我在这里使用3
因为lt()
是从0开始的索引。
<强> Fiddle Demo 强>
答案 1 :(得分:0)
$('input[type=checkbox]').each(function () {
if ( ! this.checked ) return false;
this.checked = false;
});
注意:从false
回调中返回each
会导致循环失败。
答案 2 :(得分:0)
复选框位于不同的容器中会使其变得相当复杂。你的例子中的复选框不是彼此的兄弟,这就是为什么nextUntil(或者更确切地说是prevUntil)不会在这里工作的原因。
$("input:checkbox:not(:checked)").parent().prevAll("div").find("input:checkbox").prop("checked", false);
假设它并不总是与选中的复选框相同。