亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于<script></script>位置的問題

<!DOCTYPE?HTML>
<html>
<head>
<meta?http-equiv="Content-Type"?content="text/html;?charset=gb2312">
<title>display</title>
????<script?type="text/javascript">?
????????function?hidetext()??
????????{??
????????var?mychar?=?document.getElementById("con");
????????mychar.style.display="none";
????????}??
????????function?showtext()??
????????{??
????????var?mychar?=?document.getElementById("con");
????????mychar.style.display="block";
????????}
????</script>?
</head>?
<body>??
????<h1>JavaScript</h1>??
????<p?id="con">做為一個Web開發師來說,如果你想提供漂亮的網頁、令用戶滿意的上網體驗,JavaScript是必不可少的工具。</p>?
????<form>
???????<input?type="button"?onclick="hidetext()"?value="隱藏內容"?/>?
???????<input?type="button"?onclick="showtext()"?value="顯示內容"?/>?
????</form>
</body>?
</html>

這個任務代碼中,<script>…var mychar = document.getElementById("con");
…</script>在<p id="con">…</p>之前,按照瀏覽器從上到下的解析渲染順序,此時javascript是無法獲取id="con"的元素的,所以后邊兩個顯示和隱藏的button應該沒有反應才對,,,可是實際上,代碼執行卻沒有任何問題,

比如下圖:<script></script>位置在前在后,結果可大不一樣啊

56ab05e60001bfa005000256.jpg

56ab05e60001e80605000192.jpg

求解答??!



正在回答

3 回答

第一個例子因為有了??onclick="hidetext() ?這句代碼,會直接在全局尋找并執行hidetext() 這個函數 ?javascript代碼所以在前在后沒區別 ?第二個例子就像你說的一樣,javascript代碼在前面并未或得到con元素,所以返回值為空,在后面就獲得了con的元素,所以有返回值 ??

3 回復 有任何疑惑可以回復我~
#1

OLYLYL 提問者

非常感謝!
2016-01-29 回復 有任何疑惑可以回復我~

貌似第一章講過,通過事件調用執行的function對位置沒什么要求。

0 回復 有任何疑惑可以回復我~
#1

OLYLYL 提問者

謝謝~
2016-01-29 回復 有任何疑惑可以回復我~

前一個代碼執行沒有問題是因為當button顯示出來時,script標簽已經加載完畢,可以執行,后一個的差異是因為當script標簽在頭部獲取id時,body部分未加載出來,瀏覽器無法獲取所以值為null。

0 回復 有任何疑惑可以回復我~
#1

OLYLYL 提問者

謝謝~
2016-01-29 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于<script></script>位置的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號