0

要素:

<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 (第一次未选中)。有办法吗?

4

3 回答 3

0

您可以尝试改用:lt()选择器:

$("div:lt(3)").find('input').prop('checked', false);

这将为位置之前的元素添加checked属性。inputdiv4th

3在这里使用是因为lt()是基于 0 的索引。

小提琴演示

于 2014-02-07T17:08:45.670 回答
0
$('input[type=checkbox]').each(function () {
    if ( ! this.checked ) return false;
    this.checked = false;
});

注意:false从回调中返回each会跳出循环。


这是小提琴:http: //jsfiddle.net/VCD94/

于 2014-02-07T17:10:57.793 回答
0

位于不同容器中的复选框使这变得相当复杂。您示例中的复选框不是彼此的兄弟,这就是为什么 nextUntil (或更确切地说是 prevUntil )在这里不起作用的原因。

$("input:checkbox:not(:checked)").parent().prevAll("div").find("input:checkbox").prop("checked", false);

这是假设它并不总是被选中的复选框。

于 2014-02-07T17:26:34.387 回答