Javascript 如何按数组值递归检查复选框?

Javascript 如何按数组值递归检查复选框?,javascript,html,arrays,checkbox,Javascript,Html,Arrays,Checkbox,我将尽量简洁:)我正在做一个项目。此项目生成许多页面,其中充满缩略图,旁边有复选框。总缩略图数量可能会有所不同。缩略图被分为1000个html页面。所以1000个缩略图就是一个html页面。这些充满缩略图的页面由父html页面通过iframe调用。我的目标是让用户能够选中这些缩略图附近的复选框,然后将一个新页面加载到iframe中,在那里选中复选框,然后能够将上一个页面加载到iframe中,让javascript选中用户之前选中的框。我使用数组跟踪用户选中的复选框 下面是javascript。有

我将尽量简洁:)我正在做一个项目。此项目生成许多页面,其中充满缩略图,旁边有复选框。总缩略图数量可能会有所不同。缩略图被分为1000个html页面。所以1000个缩略图就是一个html页面。这些充满缩略图的页面由父html页面通过iframe调用。我的目标是让用户能够选中这些缩略图附近的复选框,然后将一个新页面加载到iframe中,在那里选中复选框,然后能够将上一个页面加载到iframe中,让javascript选中用户之前选中的框。我使用数组跟踪用户选中的复选框

下面是javascript。有两个问题!第一个问题是,我有用于调试的警报。它确实会提醒正确的值,但会提醒存储在数组中的所有值。我希望它只提醒iframe页面中存在的复选框,这就是为什么我将它添加到document.getElementByNames中。然后。。。它没有选中任何框!无复选框:(

关于如何实现这一点有什么想法吗?下面是JS和HTML

JS

函数repGenChk(valNam){
var chkN=valNam.name;
父代推送(chkN);
警报(parent.genL);
}
函数chkSet(){
对于(var i=0;i
HTML


以此类推,有无数个复选框。。。。
任何想法,想法,建设性的批评和批评都是非常受欢迎的!我在过去已经得到了很多JQuery的建议,我已经开始考虑它了。 非常感谢大家

编辑-我能弄明白。我不认为我能用带有复选框的ID,我能。哇

JS

函数repGenChk(valNam){
var chkN=valNam.id;
父代推送(chkN);
警报(parent.genL);
}
window.onload=函数chkSet(){
对于(var i=0;i
HTML


等等等等。。。。。

:)

考虑在包含复选框的元素上放置一个单击侦听器。为每个复选框指定唯一的id或名称。当你点击容器时,检查它来自哪里。如果它来自复选框,则根据复选框是否选中,将复选框的名称/id添加或删除到存储哪些复选框已选中的对象

要重新检查它们时,请在对象上迭代(使用for..in),然后使用
getElementById
getElementsByName(…)[0]
来检查复选框。通过这种方式,您只需在复选框中迭代尽可能多的对象属性,而且
getElementById
非常快,因此事情应该更简单、更快


顺便说一句,返回一个类似于数组但不是数组的集合。

document.getElementsByName返回一个集合,但似乎试图将其用作字符串。此外,您不需要在每一行上重新声明“var item”,尽管允许,但当使用同一个变量为tips lostsource保存不同类型的不同值时,这会非常混乱!谢谢你的回复,我成功了!我以为我不是为复选框工作的,我猜是的!谢谢:)
function repGenChk(valNam) {
  var chkN = valNam.name;
  parent.genL.push(chkN);
  alert(parent.genL);
}
function chkSet() {
  for (var i = 0; i < parent.genL.length; i++) {
  var item = parent.genL[i];
  var item = document.getElementsByName(item);
  if (item != null) { document.getElementsByName(item).checked=true; }
  alert(parent.genL[i]);
}}

window.onload = chkSet();
<input type="checkbox" onClick="repGenChk(this);" value="1" name="1">
<input type="checkbox" onClick="repGenChk(this);" value="2" name="2">
<input type="checkbox" onClick="repGenChk(this);" value="3" name="3">
<input type="checkbox" onClick="repGenChk(this);" value="4" name="4">
so on and so forth for Xthousands of checkboxes....
function repGenChk(valNam) {
var chkN = valNam.id;
parent.genL.push(chkN);
alert(parent.genL);
}
window.onload = function chkSet() {
for (var i = 0; i < parent.genL.length; i++) {
if (document.getElementById(parent.genL[i]) != null) {     document.getElementById(parent.genL[i]).checked=true; }
}
}
<input type="checkbox" onClick="repGenChk(this);" id="1">
<input type="checkbox" onClick="repGenChk(this);" id="2">
<input type="checkbox" onClick="repGenChk(this);" id="3">
<input type="checkbox" onClick="repGenChk(this);" id="4">
etc etc etc.....