我有一个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/

10-13 04:58