[removed] Does not change the div innerHTML

前端 未结 5 1838
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-13 21:58

I really cannot understand why this does not work. I\'ve tried couple of tricks but I just don\'t get it.





        
相关标签:
5条回答
  • 2021-01-13 22:07

    The problem that you're facing is that the browser runs the JavaScript as it's encountered when rendering/processing the page. At this point it will alert() your message, but the relevant element, the #results div isn't present in the DOM, so nothing can be changed.

    To address this, you can either place the script at the end of the page, just before the closing </body> tag, or run the code in the onload event of the body or window.

    0 讨论(0)
  • 2021-01-13 22:14

    The script has to be placed after the div#results or executed onload, otherwise the element is still unknown when you try to access it.

    0 讨论(0)
  • 2021-01-13 22:14
    <html>
    <head>
    <script type="text/javascript">
    function onloadCall()
    {
        alert('Hey');
        var vText = document.getElementById("results");                                                 
        vText.innerHTML = 'Changed';
        alert(vText.innerHTML);
    }
    </script>
    </head>
    <body onload="onloadCall()">
        <div id="results">
        hey there
        </div>
    </body>
    </html>
    

    Hope the above snippet shows you the fix

    0 讨论(0)
  • 2021-01-13 22:17

    You need to call this script in onload event i.e

     window.onload=function(){
    //your code
    }
    
    0 讨论(0)
  • 2021-01-13 22:27

    This is working as you can see here:

    http://jsfiddle.net/gHbss/

    It's important that you put the JavaScript after your HTML div container.

    0 讨论(0)
提交回复
热议问题