課程
/前端開發(fā)
/JavaScript
/JavaScript進階篇
求諸位大神詳解
2016-09-25
源自:JavaScript進階篇 9-15
正在回答
replaceChild(newnode,oldnode)每次使用的時候,所有與之相關(guān)的屬性內(nèi)容被清空,也就是說你第一次替換之后,那個位置的id屬性已經(jīng)清空了,變成了<i>JavaScript</i>,你已經(jīng)無法通過oldnode=document.getElementById("oldnode")獲取節(jié)點了,所以每次替換著以后你要給替換上的節(jié)點添加id屬性,具體如下面代碼
--------------------------------------------------------------
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>childNodes</title></head><body><script type="text/javascript">function replaceMessage(){var change=document.getElementById("change");var oldnode=document.getElementById("oldnode");if (oldnode.nodeName=="B"){var newnode=document.createElement("i");newnode.innerHTML=oldnode.innerHTML;oldnode.parentNode.replaceChild(newnode,oldnode);oldnode=null;newnode.setAttribute("id","oldnode");change.innerHTML="斜體改粗體";}else {var newnode=document.createElement("b");newnode.innerHTML=oldnode.innerHTML;oldnode.parentNode.replaceChild(newnode,oldnode);oldnode=null;newnode.setAttribute("id","oldnode");change.innerHTML="粗體改斜體";}}</script><b id="oldnode">Java</b><br><a href="javascript:replaceMessage()" id="change">粗體改斜體</a></body></html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>childNodes</title>
</head>
<body>
<script type="text/javascript">
function replaceMessage(){
var change=document.getElementById("change");
var oldnode=document.getElementById("oldnode");
if (oldnode.nodeName=="B"){
var newnode=document.createElement("i");
newnode.innerHTML=oldnode.innerHTML;
oldnode.parentNode.replaceChild(newnode,oldnode);
oldnode=null;
newnode.setAttribute("id","oldnode");
change.innerHTML="斜體改粗體";
}
else {
var newnode=document.createElement("b");
change.innerHTML="粗體改斜體";
</script>
<b id="oldnode">Java</b><br>
<a href="javascript:replaceMessage()" id="change">粗體改斜體</a>
</body>
</html>
qq_愁悵_03698152 提問者
改成這樣還是不行?該咋辦了?
沒有將新創(chuàng)建的元素重新設(shè)置ID,應(yīng)該在createElemrnt之后給新標(biāo)簽添加id:newnode.setAttribute("id", "oldnode");
大小寫B(tài)有問題吧
舉報
本課程從如何插入JS代碼開始,帶您進入網(wǎng)頁動態(tài)交互世界
2 回答將粗體改為斜體?
6 回答如果要將斜體改為粗體
2 回答為什么會粗體變斜體呢
3 回答粗體變斜體求解
1 回答為啥不能變成斜體
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-09-30
replaceChild(newnode,oldnode)每次使用的時候,所有與之相關(guān)的屬性內(nèi)容被清空,也就是說你第一次替換之后,那個位置的id屬性已經(jīng)清空了,變成了<i>JavaScript</i>,你已經(jīng)無法通過oldnode=document.getElementById("oldnode")獲取節(jié)點了,所以每次替換著以后你要給替換上的節(jié)點添加id屬性,具體如下面代碼
--------------------------------------------------------------
2016-09-26
2016-09-26
沒有將新創(chuàng)建的元素重新設(shè)置ID,應(yīng)該在createElemrnt之后給新標(biāo)簽添加id:newnode.setAttribute("id", "oldnode");
2016-09-26
大小寫B(tài)有問題吧