2010-01-13 111 views
0

我有一个笑着htmldiv与输入复选框的可变数目和我喜欢对子级至赤其中chekbox被cheked并且这是不jQuery:如何获取一组元素?

HTML代码:

<div> 
    <input type="checkbox" val="1"/>Check One<br/> 
    <input type="checkbox" val="2" checked="checked"/>Check Two<br/> 
</div> 

Javascript代码:

var $kids = $("div").children("input"); 

for (var i = 0; i < $kids.length; i ++) { 
    // if i alert($kids[i]); i get [object HTMLInputElement] how can i work with it? 
    alert ($kids[i].val()); // doesn't work 
} 

jQuery site我读children()方法可以“获取一组元素,包含匹配的每一组元素的所有独特直接子元素NTS“。但什么是“一组要素”,我该如何使用它?

回答

1

编辑

我应该更仔细地阅读你的问题你问如何通过设定的迭代。如已经说明你可以这样做:

$('div input:checked').each(function(){ 
    // do something with the item this is always the current element in the iteration 
}); 

$.each(yourVar, function(i, e){ 
    // your var can be anything iterable really... an object, an array i is the index and e is the value for that index 
}); 

$('div input:checked');应该工作。

0

使用一组元素与使用jQuery中的单个元素非常相似..有很多方法可以用来分割段允许您使用每个匹配元素.css(),.animate().show()等都可以与集合中匹配的所有元素一起使用。您可以使用.get()或仅使用数组索引[0]从jQuery匹配集中获取单个元素。

3

$("input:checkbox:checked")$("input:checkbox:not(:checked)")

您应该添加一个id要将容器限制选项...
<div id="container"> inputs here </div>

然后可以使用...
var checked = $("#container input:checkbox:checked");
var unchecked = $("#container input:checkbox:not(:checked)");

0
  • 这选择器会让你看到所有的复选框:
  • 这个选择会让你所有被检查的复选框:input:checkbox:checked
  • 这个选择将让你所有的选中的复选框:input:checkbox:not(:checked)
0

,您可以访问$孩子的元素[I ],但是你得到的不是一个JQuery对象,它是一个标准的DOM元素。因此,您不能调用.val()方法,因为DOM对象不存在。

所以真的,你只需要做出一个小的修改:

var $kids = $("div").children("input"); 

for (var i = 0; i < $kids.length; i ++) { 
    // if i alert($kids[i]); i get [object HTMLInputElement] how can i work with it? 
    alert ($kids[i].checked); // does work :-) 
} 

希望这有助于!