2010-01-13 100 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 :-) 
} 

希望這有助於!

相關問題