1. ホーム
  2. javascript

[解決済み] なぜ私のjavascriptではdocument.bodyがnullなのでしょうか?

2022-04-27 05:42:14

質問

以下は私の簡単なHTML文書です。

Chrome Consoleにこのエラーが表示されるのはなぜですか?

Uncaught TypeError: のメソッド 'appendChild' を呼び出すことができません。 null となります。

<html>
<head>
    <title>Javascript Tests</title>

    <script type="text/javascript">

        var mySpan = document.createElement("span");
        mySpan.innerHTML = "This is my span!";

        mySpan.style.color = "red";
        document.body.appendChild(mySpan);

        alert("Why does the span change after this alert? Not before?");

    </script>
</head>
<body>

</body>
</html>

解決方法は?

この時点ではまだボディは定義されていません。一般に、すべての要素を作成してから、その要素を使用する javascript を実行したいものです。この場合、いくつかのjavascriptが head セクションで body . カッコ悪い。

このコードを window.onload ハンドラまたは の後に その <body> タグを使用します。 e-bacho 2.0 ).

<head>
    <title>Javascript Tests</title>

    <script type="text/javascript">
      window.onload = function() {
        var mySpan = document.createElement("span");
        mySpan.innerHTML = "This is my span!";

        mySpan.style.color = "red";
        document.body.appendChild(mySpan);

        alert("Why does the span change after this alert? Not before?");
      }

    </script>
</head>

デモを見る .