问答详情
源自:9-17 创建文本节点createTextNode

createTextNode究竟是怎么运作的?

appendChild()是在指定节点的最后一个子节点列表之后添加一个新的子节点。然后

var newnode=document.createElement("p");
newnode.className="message";
var textnode=document.createTextNode("I Love JaveSript");
newnode.appendChild(textnode);
document.body.appendChild(newnode);

这部分究竟怎么理解呢?createTextNode() 方法创建新的文本节点,返回新创建的 Text 节点。在上面代码的第4行的结果不应该构成的是,因为是在newnode的p节点下面在构造一个节点么?我原以为createTextNode()是放回的p标签来着,然后应该应该是

<p><p>I Love JaveSript
</p></p>

可是只是

<p>I Love JaveSript
</p>

为什么呢?createTextNod()返回的究竟是什么?

提问者:黑炎蓝焰 2017-10-10 19:24

个回答

  • 皇骑
    2018-05-09 20:52:53
    已采纳

    返回的就是“文本节点”,可以测试一下,script中添加下面一行代码:

    alert(textnode);

    会提示“object text”,就是文本节点的意思,p元素节点下加一个文本节点就是:

    <p>I Love JaveSript</p>

    如果按你之前的理解:

    <p><p>I Love JaveSript</p></p>

    这个就是在p下再建一个p节点然后再建一个text文本节点,就是这样:

    var newnode2 = document.createElement("p");
    newnode2.appendChild(textnode);
    newnode.appendChild(newnode2);


  • 慕娘4083851
    2017-10-12 13:45:44

    createTextNod()返回的是文本节点,为什么要返回p标签呢?