Javascript的值為什么會變成Hello world出現在上面?
想問下是什么原因呢?
1/是因為程序在執行HTML文件時會提前預加載或者預編譯script文件所以javascript的值被改變了;
2/是因為程序是按從上到下順序執行,然后執行到document.write("P標簽原始內容:"+mycon.innerHTML);后將javascript的值改為Hello world.
想請教下這兩種哪種對的呢?還是有其他的解釋?謝謝
想問下是什么原因呢?
1/是因為程序在執行HTML文件時會提前預加載或者預編譯script文件所以javascript的值被改變了;
2/是因為程序是按從上到下順序執行,然后執行到document.write("P標簽原始內容:"+mycon.innerHTML);后將javascript的值改為Hello world.
想請教下這兩種哪種對的呢?還是有其他的解釋?謝謝
2017-04-17
舉報
2017-04-19
<!DOCTYPE?HTML> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> <title>innerHTML</title> <script?type="text/javascript"> //?瀏覽器解析你的代碼是從上到下,此時,瀏覽器開始解析var?mychar=document.getElementById("con"); ??var?mychar=document.getElementById("con"); ??//很神奇的發現??mychar?這個變量是undined,為什么呢,因為此時<body></body>里面的代碼瀏覽器還沒有開始看 ??//?所以你通過id來找document.getElementById("con")是找不到的;,所以下面的mychar的變量都是無意義的 ??//結果就是js代碼失效 ??document.write("原標題:"+mychar.innerHTML+"<br>");?//輸出原h2標簽內容 ??mychar.innerHTML="Hello?world!"; ??document.write("修改后的標題:"+mychar.innerHTML);?//輸出修改后h2標簽內容 ?? ??//所以要么把script里面的內容放在下面,一定要放在你要獲取id節點下面,比如你沒有用到p標簽,其實放在p標簽上面,和下面也行 ??//2,通過window.onload=function(){?你的js代碼??},的方法,他的作用是當頁面加載完之后開始調用 ?? ?? </script> </head> <body> <h2?id="con">javascript</h2> <p>?JavaScript是一種基于對象、事件驅動的簡單腳本語言,嵌入在HTML文檔中,由瀏覽器負責解釋和執行,在網頁上產生動態的顯示效果并實現與用戶交互功能。</p> </body> </html>2017-04-19
<!DOCTYPE?HTML> <html> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> <title>innerHTML</title> <script?type="text/javascript"> ??var?mychar=document.getElementById("con"); ??document.write("原標題:"+mychar.innerHTML+"<br>");?//輸出原h2標簽內容 ??mychar.innerHTML="Hello?world!"; ??document.write("修改后的標題:"+mychar.innerHTML);?//輸出修改后h2標簽內容 </script> </head> <body> <h2?id="con">javascript</h2> <p>?JavaScript是一種基于對象、事件驅動的簡單腳本語言,嵌入在HTML文檔中,由瀏覽器負責解釋和執行,在網頁上產生動態的顯示效果并實現與用戶交互功能。</p> </body> </html>2017-04-18
可能是這樣的,script的確在哪都能運行,但是要看下你的代碼是否與body里面的內容有關聯,如果僅僅是document.write("P標簽原始內容:"),這樣是可行的,但是如果要獲取body里面的節點的話獲取不到,
最好貼下代碼
2017-04-18
實際操作可以發現,當你把script的內容放在body上面的時候,頁面報錯,因為你無法獲取id,這是因為瀏覽器解析這個頁面是從上到下,當他執行JavaScript的代碼是,dom并沒有開始加載;
當script放在body下面時,由于從上至下,dom已經解析完成,這時候可以獲取屬性節點id,就可以使用innerHtml的方法更改元素節點的內容
2017-04-17
第二種