Javascriptでdocument.getElementsByNameが取得したのは配列に違いありませんか?

3167 ワード

今日は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は動的であるため、1つである場合もあれば、複数である場合もある.
これまでずっとこの方法を採用していたが、問題は発見されなかった.今日になって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 }     

これまでこの問題に気づかなかったが、この問題はずっと無視され、今日になってやっとこの問題に気づいた.後で元のこの問題を全部解決しなければならない.