我有一个javascipt,如下所示:
if(document.forms[0].Check_All.value=="Select All"){
for (i = 0; i < chk.length; i++){
chk[i].checked = true ;
document.forms[0].Check_All.value="DeSelect All";
}
}else{
for (i = 0; i < chk.length; i++){
chk[i].checked = false ;
document.forms[0].Check_All.value="Select All";
}
}
它用于选择和取消选择复选框。当chk.length = 2及以上时,它可以正常工作。但是,当我只有1条记录chk.length是未定义的,它将无法正常工作。任何猜测为什么?
最佳答案
发生这种情况的原因是,当仅在具有指定名称的表单元素上时,您可以直接访问该元素,而在具有相同名称的更多元素中,您可以获得集合。
您可以在类似这样的简单情况下解决此问题
if(chk.length == undefined) {
chk = new Array(chk);
}
如果之前不是集合,则
chk
之后将是一个数组–行为与集合类似,至少可以通过以下方式访问它的length属性并使用数字索引访问其(一个)元素。关于javascript - 全选/取消全选不适用于单个记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16019223/