コードは次のとおりです:
<meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <div id="content"></div> <script> var el = document.createElement("div"); el.innerHTML = ' <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>titleValue</title> <meta name="description" content="It is a good way to learn science." /> <meta name="keywords" content="Symfony2,Redis,PHP" /> <meta name="author" content="CSDN.NET" /> <meta name="Copyright" content="CSDN.NET" /> </head> <body> hello</body> </html>'; var descElements = el.getElementsByTagName("head"); document.getElementById("content").innerHTML = descElements.length; </script> </body> </html>
1. head要素にスクリプトを配置した場合、スクリプトの読み込み時にdiv要素が読み込まれておらず、「document.getElementById(...)が空かオブジェクトではありません」と表示されます。
2. 上記のコードは chrome では正常に動作し、出力結果は 5 ですが、IE では出力結果は 0 になります。
3. js でデータを定義する場合、[] を使用する必要はありません。使用しないとエラーが発生します。