美文网首页
第十章 DOM节点操作

第十章 DOM节点操作

作者: 扶光_ | 来源:发表于2021-04-29 15:06 被阅读0次

一,获取返回节点

1.childNodes()

返回一个数组 这个数组由给定的子节点构成
什么意思呢?来演示一下 首先创建一个ul ,然后返回ul里面的节点

  <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5 </li>
        </ul>
<script>
  var ul = document.getElementsByTagName("ul")[0];
       console.log(ul.childNodes);
</script>
childNodes
那么大家现在肯定会有一些疑问 ,为什么是11个节点呢? Text 又是什么呢?
那么我们换一种写法来看看
  <ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5 </li></ul>
<script>
  var ul = document.getElementsByTagName("ul")[0];
       console.log(ul.childNodes);
</script>
childNodes

其实text就是标签之间的空格

2.firstChild

返回给定节点的第一个子节点

  <ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5 </li></ul>
<script>
  var ul = document.getElementsByTagName("ul")[0];
       console.log(ul.firstChild
);
</script>
firstChild

获取到了第一个li标签 没问题

3.lastChild

给定返回子节点的最后一个节点 这个就不演示了 和上面类似

4.parentNode

返回给定节点的父节点
如果我们给他一个li 他会返回他的父节点ul

 <ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5 </li></ul>
<script>
  var ul = document.getElementsByTagName("ul")[0];
  var li = ul.getElementsByTagName("li")[2];
       console.log(li.parentNode);
</script>
parentNode

5.nextSibling

返回给定节点的下一个节点
如我们获取第三个li 然后用这个 会返回第四个 li

 <ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5 </li></ul>
<script>
  var ul = document.getElementsByTagName("ul")[0];
  var li = ul.getElementsByTagName("li")[2];
       console.log(li.nextSibling);
</script>
nextSibling

6.previousSibling

返回给定节点的上一个节点
跟上面一样 不演示了

7.lastElementChild 如果只返回标签节点 需要一个过滤

返回上一个 也是一样的 需要在中间加一个Element

二,DOM节点的操作方法

  • 创建 添加 删除 替换

1.创建元素节点 createElement ()

如我们要创建一个li

 
       var ul = document.getElementsByTagName("ul")[0];
        var oli = document.createElement("li");
        console.log(oli)
createElement

2.2.添加节点 appendChild ()

在指定节点后面添加一个新子节点
// 格式 : 父.appenChild(子)
如我们要把新创建的li放在ul里面

  var ul = document.getElementsByTagName("ul")[0];
        var oli = document.createElement("li");
        ul.appendChild(oli);
appendChild

4. createTextNode()

创建文本节点

var text = document.createTextNode("啦啦啦啦")
        console.log(text)
createTextNode

如果我们要将新创建的文本标签放在li里面 然后将li放入ul里面应该怎么写呢?
首先先创建文本节点和标签节点
然后将文本节点放入标签节点
最后将标签节点放入ul

  var ul = document.getElementsByTagName("ul")[0];
        //首先先创建好节点 
        var oli = document.createElement("li");
        var text = document.createTextNode("啦啦啦啦")
        //然后将文本节点放入li
        oli.appendChild(text);
        //最后将li节点放入ul里面
        ul.appendChild(oli)

上面的文本节点也可以用innerHtml来进行替代

5.insertBefore(添加节点,位置)

 格式 父.insertBefore(添加节点,位置)

6.removeChild()

删除节点 从子节点列表中删除指定节点
如我们要删除第一个li

   <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>

       </ul>
 
    <script>
        
        var ul = document.getElementsByTagName("ul")[0];
        ul.removeChild(ul.childNodes[1])//为什么下标不是0  因为第一个是空格Text   
  </script>   
removeChild

删除节点的第二种写法

var ul = document.getElementsByTagName("ul")[0];
        var li = document.getElementsByTagName('li');

        li[0].remove();

7.replaceChild(new,old )替换节点

  var div = document.getElementsByTagName("div")[0];
        var op = document.createElement("p");
        op.innerHTML = "新内容"
        div.replaceChild(op,div.firstElementChild)

        

新的写在前面 老的写后面

replaceChild

8.after ()

再给定节点的后面添加节点

9.before()

在给定节点的前面添加节点

三,DOM nodeName nodeValue nodeType

1.nodeName 获取节点名称

<ul>
      <li>第一个</li>
      <li>第二个</li>
      <li>第三个</li>
  </ul>
  <script>
      var oul = document.getElementsByTagName("ul")[0].childNodes;

      for(var i = 0;i<oul.length;i++){
           console.log("第"+(i+1)+"节点名称"+oul[i].nodeName);
      }
nodeName

因为是childNodes 所以一共是7个节点

        元素节点的nodeName就是标签名 
        属性节点的nodeName就是属性名称 
        文本节点的nodeName永远是#text
        文档节点的nodeName永远是#document 

2.nodeValue 获取节点内容

  var oul = document.getElementsByTagName("ul")[0].childNodes;

        for(var i = 0;i<oul.length;i++){
             console.log("第"+(i+1)+"节点名称"+oul[i].nodeValue);
        }
nodeValue
        元素节点的nodeValue是undefined或null
        文本节点的nodeValue是文本自身 
        属性节点的nodeValue是属性值

3.nodeType 节点类型

<ul>
        <li>第一个</li>
        <li>第二个</li>
        <li>第三个</li>
    </ul>
    <script>
        var oul = document.getElementsByTagName("ul")[0].childNodes;

        for(var i = 0;i<oul.length;i++){
             console.log("第"+(i+1)+"节点名称"+oul[i].nodeType);
        }
nodeType
        元素节点的类型时   1
        属性节点是         2
        文本节点           3
        文档节点           9
        注释节点是         8

相关文章

  • DOM (javascript DOM节点操作)

    DOM (javascript DOM节点操作) 本节目录 查找DOM元素 DOM节点操作 javascript操...

  • Dom操作

    操作节点 获取节点 获取子节点 更新DOM innerHTMLinnerTEXT 插入DOM appendChil...

  • 05-DOM相关知识点讲解

    DOM DOM内容主要分为四部分: 什么是DOM和节点; 获取节点; 节点操作(3种); 属性操作(3种)。 什么...

  • JQuery---dom相关节点操作

    dom相关节点操作 /* DOM操作管理 属性...

  • 第十七章 DOM基础

    要点: DOM介绍 查找元素 DOM节点 节点操作 什么是 DOM? DOM即文档对象,针对HTML和XML文档的...

  • Vue解决了哪些问题

    虚拟 dom:dom 操作时非常耗性能的,不再使用原生的 dom 操作节点,极大的解放 dom 操作,但具体操作的...

  • DOM

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

  • DOM

    一、对象基础(补充) 二、DOM获取节点 三、间接获取节点 四、DOM节点的添加和删除 五、DOM属性操作 六、练...

  • DOM操作-节点操作

    创建节点 创建属性节点 插入节点 删除节点 remove() 该节点包含的所有后代节点都会被删除 返回被已删除的节...

  • dom操作.节点操作

    尝试使用另一种方法遍历

网友评论

      本文标题:第十章 DOM节点操作

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