2014-02-12 37 views
-1

了這個問題:jQuery的名稱選擇

<input type="checkbox" name="fasdf" value="1" id="dsasd" ></input> 
<input type="checkbox" name="fasdf" value="2" id="hjiuhhjb" ></input> 
<script type="text/javascript" src="/asdf/js/jquery-1.11.0.min.js"></script> 
<script> 
    var numberChecked = jQuery("input[name='fasdf']").length; 
    alert(numberChecked); 
    jQuery("input[name='fasdf']").attr('checked', true); 
</script> 

numberChecked總是返回1,第一個複選框被選中。如果我更改第一個複選框的名稱,則會檢查第二個複選框。爲什麼?

在此先感謝

編輯:FUNCTION移除的函數

+0

回報2這裏長度http://jsfiddle.net/LMj7q/ –

+0

是啊,所以我只是做不明白。可能是我有一些奇怪的JS代碼。如果你能創造小提琴, – user1726613

+0

會很棒。 –

回答

0

怎麼一回事,因爲你給了相同的名稱的複選框。
一些jQuery函數只針對第一個匹配的元素(在你的情況下你的目標不止一個)。
當您更改第一個複選框名稱時,目標唯一複選框是#hjiuhhjb
這裏一個簡單的解決方案:

jQuery("input[name='fasdf']").each(function(){ 
    $(this).attr('checked', true); 
}); 

.each()將遍歷匹配的所有元素(更多:.each