我在页面上有很多复选框,如下所示:
<input type="checkbox" id="cb_31" class="observedType1">
<input type="checkbox" id="cb_32" class="observedType1" checked="checked">
<input type="checkbox" id="cb_33" class="observedType1">
<input type="checkbox" id="cb_40" class="observedType2" checked="checked">
然后我想检索一个数组中所有复选框的类(理想情况下是一个唯一项列表),所以我正在寻找['observedType1'l'observedType2'].
我最好的想法是:
var clss=$("[class*='observedType']:checked").attr("class");
但这只给了我一个字符串&#34; observedType1
&#34;。
我如何获得我想要的阵列? (或者&#34;列表&#34;循环进行)......
还有fiddle
答案 0 :(得分:3)
您需要迭代所有:checked
复选框,在这里您可以使用.map()
var clss=$("[class*='observedType']:checked").map(function(){
return $(this).attr('class')
}).get();
我建议您使用自定义data-*
前缀自定义属性来存储任意数据。
<input type="checkbox" id="cb_31" class="observedType" data-type="observedType1">
可以使用.data()
方法
var clss = $(".observedType:checked").map(function() {
return $(this).data('type')
}).get();
答案 1 :(得分:1)
您可以在javascript中执行以下操作:
var myInputs = document.getElementsByTagName('input');
var myCheckedInputs = Array.from(myInputs).filter(function(input) {
return input.checked;
});