nextUntil()和childElements

时间:2014-02-07 17:05:43

标签: javascript jquery nextuntil

要素:

<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(首先取消选中)。有办法吗?

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会导致循环失败。


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

答案 2 :(得分:0)

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

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

假设它并不总是与选中的复选框相同。