美文网首页
通过appendChild()方法理解DOM中元素节点、文本节点

通过appendChild()方法理解DOM中元素节点、文本节点

作者: 剑老湿 | 来源:发表于2018-05-09 17:19 被阅读29次

appendChild() 方法可以向节点添加最后一个子节点。

下面是例子:

<html>
<head>  
    <meta charset="utf-8">
    <title>点菜</title>
</head>
<body>
    <ul id="foodMenu">
        <li>宫保鸡丁</li>
        <li>红烧肉</li>
    </ul>
    <button onclick="addFood()" >加菜</button>
</body>
</html>

现在我想通过点击“加菜”按钮,调用addFood()函数给<ul>标签添加一个新的<li>酸菜鱼</li>。

思路很简单:

先获取<ul>元素节点,单独生成一个新的<li>节点,然后用appendChild()方法把<li>元素插入到<ul>元素作为最后一个子节点,再给<li>元素写入“酸菜鱼”文本。

代码如下:

<script type="text/javascript">
            function addFood(){
                var foodMenu = document.getElementById('foodMenu');
                var newfood = document.createElement('li');
                foodMenu.appendChild(newfood);
                newfood.innerText = "酸菜鱼";
            }
</script>

这里需要注意的是,creatElement()方法括号中虽然是引号,但是并不是随便写什么字符串,如果想创建一个<li>标签,就这样在引号里加li:createElement('li')

此外,这里只能用innerText方法来处理标签内的文本,不能用innerHtml方法。

考虑到innerText的兼容性,这段js代码还可以这样写:

<script type="text/javascript">
        function addFood(){
            var foodMenu = document.getElementById('foodMenu');
            var newfood = document.createElement("li");
            var foodTxt = document.createTextNode("酸菜鱼");
            newfood.appendChild(foodTxt);
            foodMenu.appendChild(newfood);
        }
</script>

这里就很有意思了,直接用"酸菜鱼"字符串通过createTextNode创建一个文本节点,将这个文本节点作为新的<li>元素的子节点,再将新的<li>元素插到<ul>下作为子节点,都是用appendChild()方法来完成的。

从这段代码可以看出,文本节点实际上是作为元素节点的子节点存在的。结合一张图来看:

20160907110147560.png

DOM中有三类节点,分别是 元素节点,文本节点,属性节点

元素节点:构成了DOM的基础。文档结构中,<html>是根元素,代表整个文档,其他的还有<head>,<body>,<p>,<span>等等,元素节点之间可以相互包含。
文本节点:包含在元素节点中。
属性节点:元素都可以包含一些属性,属性的作用是对元素做出更具体的描述,比如id,name之类的。

注意,元素节点和文本节点之间存在父子关系,元素节点和属性节点之间不存在父子关系。

相关文章

  • 通过appendChild()方法理解DOM中元素节点、文本节点

    appendChild() 方法可以向节点添加最后一个子节点。 下面是例子: 现在我想通过点击“加菜”按钮,调用a...

  • DOM

    一.dom操作 dom的组成 元素节点属性节点文本节点 通过nodeType查看类型 1 元素节点 ,2 属性节...

  • DOM样式操作

    DOM的理念:一切皆节点。方法和属性都是依赖于元素对象存在的。 DOM的节点有 文档节点、元素节点、属性节点、文本...

  • JS的DOM树总结

    一【DOM树节点】 DOM节点分为三大类:元素节点、文本节点、属性节点 文本节点、属性节点,为元素节点的两个子节点...

  • 通过DOM动态删除多个节点报错原因理解

    通过DOM动态删除多个节点报错原因理解 在DOM中,我们可以通过removeChild( )来删除元素的子节点,但...

  • Self-study06

    1. 创建新的 HTML 元素(DOM 节点) appendChild 2. 删除已有的 HTML 元素 (DOM...

  • DOM和BOM一些基础用法

    DOM DOM常用节点类型 元素节点 - 1;属性节点 - 2;文本节点 - 3;注释节点 - 8;文档节点 - ...

  • 基础知识补充

    DOM文档对象模型 DOM节点: 整个文档是一个文档节点 每个HTML元素是元素节点 HTML元素内的文本是文本节...

  • js动态增删克隆元素

    createElement 创建元素对象createTextNode 创建文本节点appendChild把元素添加...

  • DOM节点的增删改

    1:DOM节点的增加 createElement创建节点 cloneNode克隆节点 appendChild追加节...

网友评论

      本文标题:通过appendChild()方法理解DOM中元素节点、文本节点

      本文链接:https://www.haomeiwen.com/subject/vyonrftx.html