How do I solve this “Cannot read property 'appendChild' of null” error?

前端 未结 4 1800
既然无缘
既然无缘 2021-02-05 09:46

I tried to use this code below, which adds buttons in slideshow on my site:

window.onload = function loadContIcons() {
    var elem = document.createElement(\"im         


        
4条回答
  •  无人及你
    2021-02-05 10:31

    Your condition id !== 0 will always be different that zero because you are assigning a string value. On pages where the element with id views_slideshow_controls_text_next_slideshow-block is not found, you will still try to append the img element, which causes the Cannot read property 'appendChild' of null error.

    Instead of assigning a string value, you can assign the DOM element and verify if it exists within the page.

    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 container = document.getElementById("views_slideshow_controls_text_next_slideshow-block");
        if (container !== null) {
            container.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");
    
        container = document.getElementById("views_slideshow_controls_text_previous_slideshow-block");
        if (container !== null) {
            container.appendChild(elem1);
        } else console.log("aaaaa");
    }
    

提交回复
热议问题