[問題] 想請問這題顯示問題

看板Web_Design作者 (povertytrap)時間8年前 (2016/04/11 23:18), 編輯推噓6(6014)
留言20則, 6人參與, 最新討論串1/1
請問一下各位大大 <!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://www.ptt.cc/bbs/Web_Design/M.1460387911.A.7A0.html

04/11 23:21, , 1F
它是由上往下執行沒錯, javascript 的能力就是可以在東西
04/11 23:21, 1F

04/11 23:21, , 2F
已經建立之後再去改變內容, 這裡是在 <p id="demo"></p>
04/11 23:21, 2F

04/11 23:22, , 3F
已經存在在網頁上之後, 這一行 javascript 去改變它的
04/11 23:22, 3F

04/11 23:22, , 4F
innerHTML 來更改其內容
04/11 23:22, 4F

04/11 23:24, , 5F
我還是不太懂直譯式語言沒呼叫也非函數怎可以跳著跑
04/11 23:24, 5F

04/11 23:56, , 6F
可以補充一下你預期的結果嗎?
04/11 23:56, 6F

04/11 23:56, , 7F
看不懂你的問題在哪
04/11 23:56, 7F

04/12 00:02, , 8F
我預期結果是 line1 lin2 後面接BMW.......
04/12 00:02, 8F

04/12 00:03, , 9F
我問題是jacascript是直譯式語言除非有函數呼叫才會
04/12 00:03, 9F

04/12 00:04, , 10F
跳著執行..可是在這例子中沒函數呼叫.怎會優先跑下面
04/12 00:04, 10F

04/12 00:12, , 11F
可以想成 javascript 雖然嵌在 HTML 內,但他不是 HTML
04/12 00:12, 11F

04/12 00:13, , 12F
的一部分,在這個範例中 HTML 是排版,js 是改變內容
04/12 00:13, 12F

04/12 00:26, , 13F
這段語法的意思是找到id=demo的節點 插入text的內容
04/12 00:26, 13F

04/12 00:26, , 14F
所以看起來會是line1 text line2
04/12 00:26, 14F

04/12 09:15, , 15F
你已經排版p demo p 了 改變內容當還是在中間
04/12 09:15, 15F

04/12 10:36, , 16F
你把<p id="demo"></p>放在中間,怎麼會預期他最後出現?
04/12 10:36, 16F

04/12 10:38, , 17F
甲乙丙三個人依序排排站,然後叫乙蹲下來,乙也不會跑到
04/12 10:38, 17F

04/12 10:38, , 18F
最後去吧?
04/12 10:38, 18F

04/12 10:39, , 19F
你沒有叫他往後跑他當然不會往後跑囉
04/12 10:39, 19F

04/12 11:54, , 20F
大致上了解謝謝各位
04/12 11:54, 20F
文章代碼(AID): #1N2y17UW (Web_Design)