IEについては、Chrome、Firefoxブラウザの文字列スティッチング問題


もっと読む
昨日のプロジェクトテストの時、IE 8、IE 11はチェックボックスをチェックして保存を実行したところ、予想に反して実行された結果、大便をしました.最終的にチェックしたところ、元はチェックボックスの値をつなぎ合わせた時に発生した問題です.私はjsに対して知っているのはとても少なくて、多くないです.最近いくつかのプロジェクトは全部大量のjsです.いろいろな白の問題があって、仕方なくゆっくり勉強しました.
HTML:
1
2
3
4
5
元のjsコード:
var obj = document.getElementsByName("test");
check_val = [];
for(k in obj){
     if(obj[k].checked){
          check_val.push(obj[k].value);
    }
}
alert(check_val.length);
 
  

勾选1和2之后的执行结果:IE弹出0,Chrome和Firefox弹出2;

难道是IE不支持push()?

修改如下的js:

var obj = document.getElementsByName("test");
var s='';
for(k in obj){
      if(obj[k].checked){
	  s+=obj[k].value+',';
	}		
}
alert("s"+s);
チェック1および2の後の実行結果:IEポップアップs、ChromeおよびFirefoxポップアップs 1,2、
おかしいですね.どうしてIEはまた特別な騒ぎをしましたか?はい、続けて直します
再度修正した後のjs:
var obj = document.getElementsByName("test");
var s='';
for(k=0;k
チェック1と2の後の実行結果:3つのブラウザが一致するポップアップs 1,2、
まとめましょう
1.for…in遍歴は配列ではなくオブジェクトであるため、彼が巡回して訪問したのは、配列要素ではなく、objの各属性である.
2.for....inサイクルの効率はforサイクルより低い.
3.IEはあまりサポートしていないようです.
4.再発見します.