請問一下各位大大
<!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; 而非按照順序由上往下執行呢?
作者:
LPH66 (-6.2598534e+18f)
2016-04-11 23:21:00它是由上往下執行沒錯, javascript 的能力就是可以在東西已經建立之後再去改變內容, 這裡是在 <p id="demo"></p>已經存在在網頁上之後, 這一行 javascript 去改變它的innerHTML 來更改其內容
我預期結果是 line1 lin2 後面接BMW.......我問題是jacascript是直譯式語言除非有函數呼叫才會跳著執行..可是在這例子中沒函數呼叫.怎會優先跑下面
可以想成 javascript 雖然嵌在 HTML 內,但他不是 HTML的一部分,在這個範例中 HTML 是排版,js 是改變內容
這段語法的意思是找到id=demo的節點 插入text的內容所以看起來會是line1 text line2
你已經排版p demo p 了 改變內容當還是在中間
你把<p id="demo"></p>放在中間,怎麼會預期他最後出現?甲乙丙三個人依序排排站,然後叫乙蹲下來,乙也不會跑到最後去吧?你沒有叫他往後跑他當然不會往後跑囉