作者povertytrap (povertytrap)
看板Web_Design
標題[問題] 想請問這題顯示問題
時間Mon Apr 11 23:18:29 2016
請問一下各位大大
<!DOCTYPE html>
<html>
<body>
<p> line 1 </p>
<p id="demo"></p>
<p> line 2 </p>
<script>
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0;
var text = "";
while (cars[i]) {
text += cars[i] + "<br>";
i++;
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
line 1
BMW
Volvo
Saab
Ford
line 2
我知道 getElementById是抓取ID的屬性的物件
可是<p id="demo"></p>並非函數 也沒呼叫 為何會跳去先執行
document.getElementById("demo").innerHTML = text; 而非按照順序由上往下執行呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.25.119.4
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1460387911.A.7A0.html
1F:推 LPH66: 它是由上往下執行沒錯, javascript 的能力就是可以在東西 04/11 23:21
2F:→ LPH66: 已經建立之後再去改變內容, 這裡是在 <p id="demo"></p> 04/11 23:21
3F:→ LPH66: 已經存在在網頁上之後, 這一行 javascript 去改變它的 04/11 23:22
4F:→ LPH66: innerHTML 來更改其內容 04/11 23:22
5F:→ povertytrap: 我還是不太懂直譯式語言沒呼叫也非函數怎可以跳著跑 04/11 23:24
6F:推 lostnorth: 可以補充一下你預期的結果嗎? 04/11 23:56
7F:→ lostnorth: 看不懂你的問題在哪 04/11 23:56
8F:→ povertytrap: 我預期結果是 line1 lin2 後面接BMW....... 04/12 00:02
9F:→ povertytrap: 我問題是jacascript是直譯式語言除非有函數呼叫才會 04/12 00:03
10F:→ povertytrap: 跳著執行..可是在這例子中沒函數呼叫.怎會優先跑下面 04/12 00:04
11F:推 lostnorth: 可以想成 javascript 雖然嵌在 HTML 內,但他不是 HTML 04/12 00:12
12F:→ lostnorth: 的一部分,在這個範例中 HTML 是排版,js 是改變內容 04/12 00:13
13F:推 vi000246: 這段語法的意思是找到id=demo的節點 插入text的內容 04/12 00:26
14F:→ vi000246: 所以看起來會是line1 text line2 04/12 00:26
15F:推 agreerga: 你已經排版p demo p 了 改變內容當還是在中間 04/12 09:15
16F:推 Peruheru: 你把<p id="demo"></p>放在中間,怎麼會預期他最後出現? 04/12 10:36
17F:→ Peruheru: 甲乙丙三個人依序排排站,然後叫乙蹲下來,乙也不會跑到 04/12 10:38
18F:→ Peruheru: 最後去吧? 04/12 10:38
19F:→ Peruheru: 你沒有叫他往後跑他當然不會往後跑囉 04/12 10:39
20F:→ povertytrap: 大致上了解謝謝各位 04/12 11:54