function sub(){
var textid = document.getElementsByName("jo");
var ccc = new Array();
for (var i=0; i<textid.length; i++) {
if(textid[i].checked){
//alert(textid[i].id);
var tempArray = getCountArray(textid[i].id);//这里可以认为是一个固定的数组
for (var i=0; i<tempArray.length; i++) {
ccc.push(tempArray[i]);
};
}
}
alert(ccc.length);
} html里面写的是一个复选框,选一个的时候很正常。选择两个的时候,我alert它的id也是两个,但是下面ccc的长度并没有增加,为什么?
说明一点:我只alert它的id的时候,是已经注释掉了下面的数组赋值和for循环。如果加上这个for循环之后,就只能alert出一个id了。这是什么原因?
var textid = document.getElementsByName("jo");
var ccc = new Array();
for (var i=0; i<textid.length; i++) {
if(textid[i].checked){
//alert(textid[i].id);
var tempArray = getCountArray(textid[i].id);//这里可以认为是一个固定的数组
for (var i=0; i<tempArray.length; i++) {
ccc.push(tempArray[i]);
};
}
}
alert(ccc.length);
} html里面写的是一个复选框,选一个的时候很正常。选择两个的时候,我alert它的id也是两个,但是下面ccc的长度并没有增加,为什么?
说明一点:我只alert它的id的时候,是已经注释掉了下面的数组赋值和for循环。如果加上这个for循环之后,就只能alert出一个id了。这是什么原因?
这个函数呢。你要注意,在html中id是唯一的,如果你不唯一,那后面的去覆盖掉前面的。
ccc的长度当然不会变,因为它的长度始终是tempArray的长度,而且选择2个时,alert也只有一个,说明for循环有问题,js中不建议这样使用循环遍历取值。
var textid = document.getElementsByName("jo");
var ccc = new Array();
for (var i=0; i<textid.length; i++) {
if(textid[i].checked){
//alert(textid[i].id);
var tempArray = getCountArray(textid[i].id);//这里可以认为是一个固定的数组
for (var i=0; i<tempArray.length; i++) {
ccc.push(tempArray[i]);
};
alert(ccc.length);
}
}
}
var textid = document.getElementsByName("jo");
var ccc = new Array();
for (var i=0; i<textid.length; i++) {
if(textid[i].checked){
//alert(textid[i].id);
var tempArray = getCountArray(textid[i].id);//这里可以认为是一个固定的数组
for (var j=0; j<tempArray.length; j++) {
ccc.push(tempArray[j]);
};
}
}
alert(ccc.length);
}
for循环内的i换成别的变量,别用i了