如何根据检查的html复选框将javascript变量添加到javascript数组中?我想关闭复选框并让每个复选框添加选项#in var final_list。
我应该如何识别我的清单以及我应该将我的var final_list = []更改为?
这是我的复选框的html(共有12个):
<input type="checkbox" id="c1" name="c1" />
这是javascript:
function myFunction(){
var list1 = [ ];
var list2 = [ ];
var list3 = [ ];
var list4 = [ ];
var list5 = [ ];
var list6 = [ ];
var list7 = [ ];
var list8 = [ ];
var list9 = [ ];
var list10 = [ ];
var list11 = [ ];
var list12 = [ ];
var choice1 = list1[Math.floor(Math.random()*list1.length)];
var choice2 = list2[Math.floor(Math.random()*list2.length)];
var choice3 = list3[Math.floor(Math.random()*list3.length)];
var choice4 = list4[Math.floor(Math.random()*list4.length)];
var choice5 = list5[Math.floor(Math.random()*list5.length)];
var choice6 = list6[Math.floor(Math.random()*list6.length)];
var choice7 = list7[Math.floor(Math.random()*list7.length)];
var choice8 = list8[Math.floor(Math.random()*list8.length)];
var choice9 = list9[Math.floor(Math.random()*list9.length)];
var choice10 = list10[Math.floor(Math.random()*list10.length)];
var choice11 = list11[Math.floor(Math.random()*list11.length)];
var choice12 = list12[Math.floor(Math.random()*list12.length)];
var final_list = [ ];
var finalchoice = final_list[Math.floor(Math.random()*final_list.length)];
}
答案 0 :(得分:1)
我现在要直接告诉你,你的JavaScript毫无意义,因为它对你想做的事情没有贡献,所以我要告诉你如何做到这一点。从零开始!
使用类,如
<input type="checkbox" class="c" />
在您的Javascript中,您会有类似
的内容var final_list = []
var checkboxes = document.getElementsByClassName('c');
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].onchange = function () {
final_list = [];
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
final_list.push(i);
alert(final_list);
}
}
};
}
并且每次选中复选框时,该数字都将添加到数组中。如果您的所有输入都是复选框,您也可以这样做:
var final_list = []
var checkboxes = document.getElementsByTagName('c');
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].onchange = function () {
final_list = [];
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
final_list.push(i);
alert(final_list);
}
}
};
}
,唯一的更改getElementsByClassName
已替换为getElementsByTagName
。 ID是唯一的,请不要在这种情况下使用它们。
<强> DEMO 强>