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

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

為什么非要找到父母節點才能對元素進行替換/新增/在前面插入等操作?

既然已經用getElement(s)命令獲取到元素了,那么直接在其上進行替換不就行了嗎?為什么非得以父母節點為根然后調用replace??不多此一舉嗎?

正在回答

2 回答

replaceChild()方法將把一個給定父元素里面的一個子節點替換另一個子節點

你還記得parentNode的方法的示例嗎↓

<div?id="text">
??<p?id="con">?parentNode?獲取指點節點的父節點</p>
</div>?
<script?type="text/javascript">
??var?mynode=?document.getElementById("con");
??document.write(mynode.parentNode.nodeName);
</script>

這里找到p元素的父節點mynode.parentNode→div

回到replaceChild方法把一個給定父元素里面的一個子節點替換為另一個子節點

?<div><b?id="oldnode">JavaScript</b>是一個很常用的技術,為網頁添加動態效果。</div>
??<a?href="javascript:replaceMessage()">?將加粗改為斜體</a>
??
????<script?type="text/javascript">
??????function?replaceMessage(){
????????var?newnode=document.createElement("i");
????????var?newnodeText=document.createTextNode("javaScript");
????????newnode.appendChild(newnodeText);
????????var?oldNode=document.getElementById("oldnode");
????????oldNode.parentNode.replaceChild(newnode,oldNode);
?
???????}????
??</script>

oldNode.parentNode.這里就是找到了id=‘oldnode’的給定父元素div然后用新建的 i 子節點替換原有的 b 子節點

----------不知道我有沒有說明白,如果還有不清楚的可以再提出來~

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

DGua 提問者

非常感謝?。?/div>
2018-07-15 回復 有任何疑惑可以回復我~
#2

DGua 提問者

謝謝你的代碼,我能看得懂。不過還是有一點直覺上的不理解,就是說,如果我都可以直接獲取這一個元素,這個元素在文檔流中的位置內容屬性肯定都是獲取了的,為啥不能直接對其進行替換而必須要先向上找到父母再向下進行替換。我也不知道我形容我的疑問有沒有說清楚,總之我明白了運用的方法了。謝謝你呀
2018-07-15 回復 有任何疑惑可以回復我~
#3

慕設計6428170

我可以問一下 你代碼的文本效果是怎么加上去的0.0
2018-07-21 回復 有任何疑惑可以回復我~

如果不能改變一套語言的規定,就尊重法則;

可能語言里的替換都是想通的。

比如PHP字符串里面的替換

str_replace(find,replace,string)
find必需。規定要查找的值。
replace必需。規定替換?find?中的值的值。
string必需。規定被搜索的字符串。


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

舉報

0/150
提交
取消

為什么非要找到父母節點才能對元素進行替換/新增/在前面插入等操作?

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

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

幫助反饋 APP下載

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

公眾號

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