首先: Select values of checkbox group with jQuery
性能真的不應該是一個問題,除非你有複選框以十萬計一遍要經過。你最好的選擇將是封裝股利或其他父DOM對象中的複選框,然後可以內的jQuery來限制它的DOM搜索:
HTML
<div id="checkboxDiv">
<input type="checkbox" name="sample" value="isAPerson" />
<input type="checkbox" name="sample" value="isADog" />
<input type="checkbox" name="sample" value="isACat" />
</div>
jQuery的
var checkBoxArray=[];
$("#checkboxDiv input:checkbox").each(function(){
checkBoxArray.push([$(this).attr("value"),$(this).attr("checked")]);
});
這裏是實際的例子(假設你已經包括jQuery):
<script type="text/javascript">
$("#checkboxDiv input:checkbox").click(function(){
var checkBoxArray=[];
$("#checkboxDiv input:checkbox").each(function(){
checkBoxArray.push([$(this).attr("value"),$(this).attr("checked")]);
});
$("#disp").empty().append(function(){
var outputStr="";
for (a in checkBoxArray){
outputStr+=checkBoxArray[a][0]+": "+checkBoxArray[a][1]+"<br/>";
}
return outputStr;
});
});
</script>
然後,在車身:
<div id="checkboxDiv">
<input type="checkbox" name="sample" value="isAPerson" />
<input type="checkbox" name="sample" value="isADog" />
<input type="checkbox" name="sample" value="isACat" />
</div>
<div id="disp"></div>
聽起來像這樣:http://stackoverflow.com/questions/590018/getting-all-selected-checkboxes-in-an-array – epascarello 2010-08-24 16:26:03
@Vivin:但我沒有得到我正在尋找的答案。我的意思是「不可能因爲......」的答案是可以接受的,我反而採用了一種解決我眼前需要的解決方案。 – 2010-08-24 17:11:46
@epascarello:我同意'$(「input:checkbox [name = type]:checked」)'會解決這個問題,但這是相當可怕的表現!必須查看dom的每個(輸入)元素並找到具有我指定名稱的元素。性能是否真的可以接受大頁面(我需要使用它)? – 2010-08-24 17:23:07