0

HTML ファイル ...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="src/myJS.js"></script>
</head>
<body onload="myJS.myFunction();">
<p id="p01"></p>
</body>
</html>

外部 Javascript ファイル (便宜上 myJS.js と呼びます) ...

myJS = {
    myFunction: function()
    {
        //This works
        document.write("Hello world. ");

        //This does not work
        document.getElementById("p01").appendChild(document.createTextNode("Hello world, again"));
    }
};

私の最善の推測は、実行p01時にノードが作成されていないということですが、それで正しいことをすると思いました。myJSonload

4

2 に答える 2

3

外部 js に実際に投稿した両方のコード行が含まれている場合、問題はdocument.writeHTML 全体を上書きしていることです (DOM がロードされるとすぐにそのように動作します)。もう存在しないため、getElementById何も見つかりませ#p01ん。

document.write単純に呼び出しを削除すれば、コードは機能するはずです (実例を参照してください)。

于 2013-01-04T12:53:32.730 に答える
2

p01はまだ DOM に追加されていないためです。

このようにしてみてください:

<body>
<p id="p01"></p>
<script type="text/javascript">
window.onload = myJS.myFunction;
</script>
</body>
于 2013-01-04T12:47:18.637 に答える