zoukankan      html  css  js  c++  java
  • JavaScript DOM

    DOM节点

    整个文档是一个文档节点

    <p id="p" name="kang">内容</p>

    每个HTML元素是元素节点(p)

    HTML元素内的文本是文本节点(内容)

    每个HTML属性是属性节点(id="p" name="kang")

    注释是注释节点

    <html>
        <head>
            <title>标题</title>
        </head>
        <body>
            <h1>题目</h1>
            <p>内容</p>
        </body>
    </html>

    <html>节点没有父节点,所以他是根节点

    <head>和<body>的父节点是<html>节点

    文本节点"内容"的父节点是<p>节点

    <html>拥有两个子节点:<head>和<body>

    <head>节点拥有一个子节点:<title>节点

    <title>节点拥有一个子节点:文本节点"标题"

    <h1>和<p>节点是同胞节点,同时也是<body>的子节点

    <head>元素是<html>元素的首个子节点

    <body>元素是<html>元素最后一个子节点

    <h1>元素是<body>元素的首个子节点

    <p>元素是<body>元素最后一个子节点

    HTML DOM访问
    • getElementById()获取指定ID的元素
    <p id="xiu">文本</p>
    <script>
        docuemt.getElementById("xiu");
    </script>
    • getElementsByTagName()获取指定标签名称的所有元素(object)
    <p>文本</p>
    <script>
        document.getElementsByTagName("p");
    </script>
    • getElementsByClassName()获取指定类名的所有元素(object)
    <p class="xiu">文本</p>
    <script>
        document.getElementsByClassName("xiu");
    </script>
    HTML DOM属性
    • parentNode 获取节点的父节点
    <span>
        <p id="xiu">文章</p>
    </span>
    <script>
       document.getElementById("xiu").parentNode;
        
    </script>
    • childNodes 获取节点的子节点(object)
    <div id="xiu">
        <p></p>
    </div>
    <script>
        document.getElementById("xiu").childNodes;
    </script>
    • attributes 获取节点的属性节点
    • firstChild返回第一个子节点
    <div id="xiu">
        <p></p>
    </div>
    <script>
        document.getElementById("xiu").firstChild;
    </script>
    • style修改节点的css样式
    <p id="xiu">修抗</p>
    <script>
        document.getElementById("xiu").style.color = "red";
    </script>
    • innerHTML 获取节点的文本值
    HTML DOM方法
    • createAttribute()创建属性节点
    <script>
        var classNode = document.createAttribute("class");
        classNode.value = "xiu";</script>
    • setAttributeNode()插入属性节点
    <div id="app"></div>
    <script>
        var classNode = document.createAttribute("class");
        classNode.value = "xiu";
        var appNode = document.getElementById("app");
        appNode.setAttributeNode(classNode);
    </script>
    • creteTextNode()创建文本节点
    <script>
        document.createTextNode("内容");
    </script>
    • createElement()创建元素节点
    <script>
        document.createElement("p");</script>
    • appendChild()插入元素节点/文本节点
    <div id="app"></div>
    <script>
        var pNode = document.createElement("p");
        var appNode = document.getElementById("app");
        appNode.appendChild(pNode);
    </script>
    • insertBefore()在指定的子节点前插入新的节点
    <div id="app"></div>
    <button onclick="xiu()">按钮</button>
    <script>
        function xiu(){
            var pNode = document.createElement("p");
            var txtNode = document.createTextNode("文本");
            pNode.appendChild(txtNode);
            var appNode = document.getElementById("app");
            appNode.insertBefore(pNode,appNode.childNodes[0]);
        }    
    </script>
    • removeChild()删除子节点
    <div id="xiu">
        <p>1</p>
        <p>2</p>
        <p>3</p>
        <p>4</p>
    </div>
    <button onclick="myFunction()">点我</button>
    <script>
        function myFunction(){
            var list=document.getElementById("xiu");
            list.removeChild(list.childNodes[0]);
        }
    </script>
    • replaceChild()替换子节点
     
    • getAttribute()返回指定的属性值
     
     
    <p id="p" name="kang">内容</p>
    元素节点
    var d = document.getElementById("p")
    d.nodeType //1
    d.nodeName //P
    d.nodeValue //null
    属性节点
    var d = document.getElementById("p").getAttributeNode("name")
    d.nodeType //2
    d.nodeName //name
    d.nodeValue //kang
    文本节点
    var d = document.getElementById("p").firstChild
    d.nodeType //3
    d.nodeName //#text
    d.nodeValue //内容
     

     ··END··

  • 相关阅读:
    关于WorkFlow的使用以及例子
    11 个用来创建图形和图表的 JavaScript 工具包
    产品经理看程序员的自我修养
    extern "C" 的作用
    DLL 演示
    C++中L和_T()之区别
    VMware:Configuration file was created by a VMware product with more features than this version
    使用内存映射来对文件排序
    平衡二叉树的插入删除操作
    volatile关键字的使用
  • 原文地址:https://www.cnblogs.com/xiukang/p/8569910.html
Copyright © 2011-2022 走看看