1. ホーム
  2. javascript

[解決済み] Cannot read property 'appendChild' of null" エラーを解決するにはどうしたらいいですか?

2022-02-27 06:39:19

質問

以下のコードを使用すると、私のサイトのスライドショーにボタンが追加されます。

window.onload = function loadContIcons() {
    var elem = document.createElement("img");
    elem.src = "http://arno.agnian.com/sites/all/themes/agnian/images/up.png";
    elem.setAttribute("class", "up_icon");

    var id = "views_slideshow_controls_text_next_slideshow-block";
    if (id !== 0) {
        document.getElementById(id).appendChild(elem);
    } else console.log("aaaaa");

    var elem1 = document.createElement("img");
    elem1.src = "http://arno.agnian.com/sites/all/themes/agnian/images/down.png";
    elem1.setAttribute("class", "down_icon");

    var id1 = "views_slideshow_controls_text_previous_slideshow-block";
    if (id1 !== 0) {
        document.getElementById(id1).appendChild(elem1);
    } else console.log("aaaaa");
}

フロントページでは、スライドショーがあり、すべてうまくいきますが、他のページではエラーになります。 Cannot read property 'appendChild' of null が発生します。

解決方法は?

この要素はまだ追加されていないため、nullと等しくなります。getElementById(id) を呼び出すと、静的 id がすでに DOM 上にある場合を除いて、まだ dom の一部ではないので null になります。コンソールから呼び出すと、何が返ってくるか確認できます。