Javascript中,document.getElementsByName获取的就一定是数组了么?

今天在一张JSP网页中,写一个javascript方法,用于全选。

全部被选checkBox位于一个名为mainForm的Form下,name=pushIds。方法如下:

1 function selectAll(obj){
2     var form = document.getElementById("mainForm");
3     var pushIds = form.pushIds;
4     var bool = obj.selected;
5     for(var j=0; j < pushIds.length; j++){
6         pushIds[j].select = bool;
7     }
8 }     

由于pushIds的checkbox是动态的,有时可能是一个,有时可能是多个。

之前一直采用这段方法,没有发现问题;直到今天,当查询出一个pushIds后,才发现这段代码已经无效,于是我才发现了这个问题。左思又想不明白,像个1个多小时,实在憋不住问了领导,领导一句话点醒了我:“单个checkbox时,是不是不是数组啊”。

于是马上修改了代码:

 1 function selectAll(obj){
 2     var form = document.getElementById("mainForm");
 3     var pushIds = form.pushIds;
 4     var bool = obj.selected;
 5     if(pushIds.length==null{
 6         pushIds.checked=bool;
 7     }else{
 8         for(var j=0; j < pushIds.length; j++){
 9             pushIds[j].select = bool;
10         }
11     }
12 }     

之前一直没有留意这个问题,这个问题一直被忽略,直到今天才发现这个问题。稍后要将原来的这个问题全部解决掉。

原文地址:https://www.cnblogs.com/iPeterRex/p/3477367.html