0
<html>
<head></head>
<body>
<div class="abcd"></div>
<style>
.new_info {
color:red;
}
</style>
<script>

function getBox(){
    var sende = document.querySelectorAll(".abcd");

    alert(sende[0].hasChildNodes());
    alert(y[0].hasChildNodes());
    if(sende[0].hasChildNodes() == false && sende[0].nodeValue == null){
            var newdiv = document.createElement('div');
            newdiv.innerHTML = "which i want";
            newdiv.className = "new_info";
            sende[0].appendChild(newdiv);
}
}
getBox();

</script>
</body>
</html>

上記のコードでは、クラス 'abcd' を持つ div タグを、'which i want' のようなテキストを持つ子ノードとしていくつかの div で埋めたいと考えています。これは他のブラウザではうまくいきますが、IE8 ではうまくいきません。このコードをIE8でも動作させるにはどうすればよいですか?

4

2 に答える 2

2

IE8 では動作しません。たとえば、 IE8 標準モードquerySelectorAllでのみ動作し、 IE8に関してはバグ レポートがあります。

解決策については、次をご覧ください。

悲しいことに、または幸運なことに、これらのクロス ブラウザーの問題のために、JavaScript ライブラリが存在し、内部の混乱をすべて解消してくれます。

于 2012-06-25T11:14:07.967 に答える
0

このコードがあなたのコードで何をしているalert(y[0].hasChildNodes());のか、これは実行されていないためです。

デモを参照してください: http://jsfiddle.net/rathoreahsan/NmFNH

私はコメントalert(y[0].hasChildNodes());しましたが、それは機能しています。

于 2012-06-25T11:40:11.860 に答える