为了账号安全,请及时绑定邮箱和手机立即绑定

这两个程序里的appendChild用法有什么不同?

这两个程序里的appendChild用法有什么不同?

尼古拉车夫 2016-11-23 23:52:07
<ul id="test">  <li>JavaScript</li>  <li>HTML</li></ul> <script type="text/javascript">  var otest = document.getElementById("test");    var newNode=document.createElement("li");    newNode.innerHTML="PHP";    otest.appendChild(newNode);  </script> ------------------------------------------------------<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>
查看完整描述

4 回答

已采纳
?
MarlboroKay

TA贡献189条经验 获得超236个赞

区别:1)  innerHTML属于HTML Dom

      createTextNode属于XML Dom

   2)  虽然效果类似但是在某种情况下是有区别的

var p=document.createElement("p");
p.className="message";
p.innerHTML="<b>I love js</b>";
document.body.appendChild(p);


var p=document.createElement("p");
p.className="message";   
var textnode=document.createTextNode("<b>I love js</b>");
p.appendChild(textnode);5 document.body.appendChild(p);

在第一种情况下呈现出的效果是加粗的文本内容

而在第二种情况下呈现出的效果是<b>I love js</b>原文本。

所以两者的区别在于,innerHTML会将文本中包含的HTML代码实现效果,而createTextNode只是纯粹创造了文本节点,所以返回的效果也就是纯文本内容。

希望能帮到你,望采纳!


查看完整回答
1 反对 回复 2016-11-24
?
woshiajuana

TA贡献211条经验 获得超152个赞

没什么区别的

appendChild() 方法向节点添加一个子节点。

只不过前者添加的是元素节点 li

后者添加的是文本节点 JavaScript

查看完整回答
1 反对 回复 2016-11-24
?
乱也

TA贡献12条经验 获得超0个赞

innerHTML在替换内容时改变的是原本文档内容 DOMappendChild只存在JAVAscript里更新内容不改变原本文档。 书上是这样说得
查看完整回答
反对 回复 2016-12-01
  • 乱也
    乱也
    说错了,innerHTML是把所有内容替换掉的
  • 4 回答
  • 0 关注
  • 1993 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信