• 【javascript】DOM操作方法(2)——节点方法


    Node.appendChild(node)   //向节点添加最后一个子节点
    Node.hasChildNodes()   //返回布尔值,表示当前节点是否有子节点
    Node.cloneNode(true);  // 默认为false(克隆节点), true(克隆节点及其属性,以及后代)
    Node.insertBefore(newNode,oldNode)  // 在指定子节点之前插入新的子节点
    Node.removeChild(node)   //删除节点,在要删除节点的父节点上操作
    Node.replaceChild(newChild,oldChild)  //替换节点
    Node.contains(node)  //返回一个布尔值,表示参数节点是否为当前节点的后代节点。
    Node.compareDocumentPosition(node)   //返回一个7个比特位的二进制值,表示参数节点和当前节点的关系
    Node.isEqualNode(noe)  //返回布尔值,用于检查两个节点是否相等。所谓相等的节点,指的是两个节点的类型相同、属性相同、子节点相同。
    Node.normalize()   //用于清理当前节点内部的所有Text节点。它会去除空的文本节点,并且将毗邻的文本节点合并成一个。
    //ChildNode接口
    Node.remove()  //用于删除当前节点
    Node.before()  //
    Node.after()
    Node.replaceWith()

    1.Node.appendChild(node) //向节点添加最后一个子节点

    <ul id="list">
        <li>列表1</li>
        <li>列表2</li>
    </ul>
    <button onclick="myFunction()">点我</button>
    <script type="text/javascript">
        function myFunction(){
            var node = document.createElement('li');
            var value=document.createTextNode("列表3");
            node.appendChild(value);
            document.getElementById('list').appendChild(node);
        }
    </script>

    2.Node.hasChildNodes() //返回布尔值,表示当前节点是否有子节点

    <ul id="list">
        <li id="li1">列表1</li>
        <li>列表2</li>
    </ul>
    <button onclick="myFunction()">点我</button>
    <script type="text/javascript">
        function myFunction(){
            if(document.getElementById("li1").hasChildNodes()){
                alert("有子节点");
            }
            else{
                alert("没有子节点");
            }
        }
    </script>

    注意:当li标签下有文本节点,返回结果也为true,当文本节点去掉时,返回结果就为false

    3.Node.cloneNode(true); // 默认为false(克隆节点), true(克隆节点及其属性,以及后代)

    <ul id="list"><li id="li1">列表1</li><li>列表2</li></ul>
    <button onclick="myFunction()">点我</button>
    <script type="text/javascript">
        function myFunction(){
            var node=document.getElementById('list').firstChild;
            var clone=node.cloneNode(true);
            document.getElementById("list").appendChild(clone);
        }
    </script>

    4.Node.insertBefore(newNode,oldNode) // 在指定子节点之前插入新的子节点

    <ul id="list"><li id="li1">列表1</li><li>列表2</li></ul>
    <button onclick="myFunction()">点我</button>
    <script type="text/javascript">
        function myFunction(){
            var Nnode=document.createElement("li");
            Nnode.innerHTML="列表0";
            var Onode=document.getElementById("li1");
            document.getElementById("list").insertBefore(Nnode,Onode);
        }
    </script>

    5.Node.replaceChild(newChild,oldChild) //替换节点

    与上述insertBefore代码基本相同

    6.Node.contains(node) //返回一个布尔值,表示参数节点是否为当前节点的后代节点。

    node.contains( otherNode )  
    • node 是否包含otherNode节点.
    • otherNode 是否是node的后代节点.

    如果 otherNode 是 node 的后代节点或是 node 节点本身.则返回true , 否则返回false.

    7.Node.isEqualNode(noe) //返回布尔值,用于检查两个节点是否相等。所谓相等的节点,指的是两个节点的类型相同、属性相同、子节点相同。

    <ul id="list"><li id="li">列表</li><li id="li">列表</li></ul>
    <ul id="list1"><li id="li">列表1</li><li id="li">列表</li></ul>
    <button onclick="myFunction()">点我</button>
    <script type="text/javascript">
        function myFunction(){
            var node=document.getElementById("list").firstChild;
            var child=document.getElementById("list1").firstChild;
            if(node.isEqualNode(child)){
                alert("相等");
            }
            else{
                alert("不相等");
            }
        }
    </script>

    8.Node.normalize() //用于清理当前节点内部的所有Text节点。它会去除空的文本节点,并且将毗邻的文本节点合并成一个。

  • 相关阅读:
    Nginx反向代理Mysql
    Postgresql数据迁移
    Docker安装及配置
    jstack用法
    Centos7系统添加Windows字体
    Bash美化
    ERROR: new encoding (UTF8) is incompatible xxx
    Python selenium 自动化脚本打包成一个exe文件(转载 原文https://www.jb51.net/article/178430.htm)
    python -m pip install --upgrade pip 失败
    Warning: no saslprep library specified. Passwords will not be sanitized
  • 原文地址:https://www.cnblogs.com/Horsonce/p/7649829.html
Copyright © 2020-2023  润新知