• Js dom操作总结


    1.选取文档元素

    1.1. getElemenById

         基于唯一id获取,任何HTML元素可以有id属性,在文档中该值必须唯一。

    1.2. getElementsByName

       基于name属性的值选取HTML元素。

    1.3. getElementsByTagName

      通过标签名选取元素,document.getElementByTagName("div")

    1.4. getElementsByClassName

      通过css类选取元素

    1.5. querySelectorAll()

      终极的选取元素的办法,非常强大的技术,等效于jquery中的$()方法。

    2.文档结构和遍历

       2.1 遍历

         parentNode,节点的父节点

         childNodes, 只读的类数组对象,节点的子节点,注意:换行符也是一个子节点

         firstChild,lastChild,  子节点的第一个和最后一个,注意:可能是换行,因为换行也是一个子节点

      nextSibling,previoursSibling, 节点的上一个兄弟节点和下一个兄弟节点

    <html><head>test</head><body>Hello World!</body></html>
    console.log(document.childNodes[0].childNodes[1]); //<body>Hello World!</body>
    console.log(document.firstChild.firstChild.nextSibling); //<body>Hello World!</body>

      2.2 属性

      HTML属性名不区分大小写,但js属性名大小写敏感,js属性名采用驼峰形式,其中class和for可以在html中作为属性,但是在js中为关键字,所以在js中变为className和htmlFor

    <body>
        <div id="div3" class="test" >3333333333</div>
        <script>
            document.getElementById("div3").className   //test
            document.getElementsByClassName("test")[0].id //div3        
        </script>
    </body>

      2.3 创建节点

    var s = document.createElement("script");
    s.url = "www.baidu.com";

    2.4 插入节点

      appendChild()是在需要插入的element节点上调用,参数为被插入的节点,将被插入节点插入到调用节点的尾部

    <div id="app" class="test" >
        <div>hello</div>
    </div>
    <script>
        var p = document.createElement("p");
        p.innerText = "world";
        document.getElementById("app").appendChild(p);
    </script>  //将p插入到<div>hello</div>

      insertBefore()第一个参数是待插入节点,第二个是已经存在的节点,新节点插入到该节点的前面。方法是在新节点的父节点上调用,方法的第二个参数必须为该父节点的子节点

    <body>
        <div id="app" class="test" >
            <div id="app1">hello</div>
        </div>
    <script>
        var p = document.createElement("p");
        p.innerText = "world";
        document.getElementById("app").insertBefore(p, document.getElementById("app1"));
    </script>  //在app1前插入

    2.5 删除和替换

      removeChild()和replaceChild()的语法和insertBefore()的语法一致

  • 相关阅读:
    POJ 3977 折半枚举
    [CQOI2007]余数求和 (分块+数学
    NOI P1896 互不侵犯 状压DP
    HDU 5446 Unknown Treasure (卢卡斯+CRT
    宁夏邀请赛F FLOYD
    P1414 又是毕业季II (数学?
    P2051 [AHOI2009]中国象棋 DP
    POJ 2449:Remmarguts' Date(A* + SPFA)
    HDU 6215:Brute Force Sorting(链表+队列)
    HDU 6207:Apple(Java高精度)
  • 原文地址:https://www.cnblogs.com/mianbaodaxia/p/6114346.html
Copyright © 2020-2023  润新知