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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript HTML DOM 元素(節點) 我寫的這倆句有什么不同嗎

JavaScript HTML DOM 元素(節點) 我寫的這倆句有什么不同嗎

qq_囧_1 2015-10-14 10:52:35
? ? ? ? (1)? ? ? ? document.createElement("p").appendChild(document.createTextNode("這是新段落。"));? ? ? ? document.getElementById("div").appendChild(document.createElement("p"));(2)? ? ? ? var para = document.createElement("p");? ? ? ? var node = document.createTextNode("這是新段落。");? ? ? ? para.appendChild(node);? ? ? ? var element = document.getElementById("div");? ? ? ? element.appendChild(para);
查看完整描述

5 回答

已采納
?
鬧小志

TA貢獻75條經驗 獲得超42個贊

當然有區別。首先明確lz的思路是創建一個文本節點,再創建一個p節點,然后把文本節點追加到p節點中,再把整個p節點追加到div中。

首先請lz試一下:

document.getElementById("div").appendChild(document.createElement("p").appendChild(document.createTextNode("這是新段落。")));

可以很明顯看到有結果。

我們說創建一個新的節點的時候,這個節點是處于游離狀態的,除非你把它追加到已存在的元素中,否則我們就看不到它。也就是說每一個document.creatElement("p")和document.creatElement("p")是不同的,他們是兩個游離的p元素。lz很明顯在第一段代碼里把他們當成了一個元素,所以當你運行第一段代碼的時候,div里只有一個空的p標簽!

相反,第二段給每一個節點都賦給了變量,通過變量來追加元素,指代都很明顯,所以就成功啦~~

個人理解,希望對你有幫助!

查看完整回答
1 反對 回復 2015-10-14
?
風佑兲

TA貢獻3條經驗 獲得超1個贊

要寫一行就干脆寫一行

document.getElementById("div").appendChild(document.createElement("p").appendChild(document.createTextNode("這是新段落。")));

要么把上面的存到變量里,下面繼續使用

var?p?=?document.createElement("p").appendChild(document.createTextNode("這是新段落。"));
document.getElementById("div").appendChild(p);


查看完整回答
1 反對 回復 2015-10-14
?
qq_囧_1

TA貢獻1條經驗 獲得超0個贊

為什么上面那一句是錯的了

查看完整回答
反對 回復 2015-10-14
?
風佑兲

TA貢獻3條經驗 獲得超1個贊

還真沒有

查看完整回答
反對 回復 2015-10-14
  • qq_囧_1
    qq_囧_1
    為什么上面那一句執行不了
  • 風佑兲
    風佑兲
    ...你第一句只是創建出來了又沒有添加到div里,你添加到div里的是一個新的創建出來的p好吧!
  • 5 回答
  • 0 關注
  • 1770 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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