• JS中的DOM


        DOM文档对象模型

      HTML中每个内容(标签、文本内容、属性)都是一个节点对象Node。

      node(节点)的属性

    三大属性:

      1、nodeType节点类型

        专门区分节点的类型:

          document  9

           element    1

           attribute         2

              text             3

      2、nodeName节点名称

        document  #document

          element  全大写的标签名

          attribute  属性名

          text   #text

      3、nodeValue节点值

          null  

          null

          属性

          文本内容

        DOM的操作之查找

    查找:

      1、直接获取的三个元素:

        html  document.documentElement

        head      .head

        body      .body

      2、节点关系

        父子关系:

          node.parentNode  返回node的父节点

          node.childNodes   返回Node的所有直接子节点

          node.firstChild    返回node下第一个子节点

          node.lastChild    返回node下最后一个子节点

        兄弟关系:

          node.previousSibling  返回当前节点前一个兄弟节点

          node.nextSibling    获得当前节点后一个兄弟节点

      不但包含有用的元素节点,还包含了看不见的换行、空格干扰。

      下一种方法只获取节点信息:

      父子关系:

        elem.parentElement  返回一个父元素对象

                .children     返回子元素对象的集合(IE8支持)

                .firstElementChild   返回第一个子元素对象 

                .lastElementChild 返回最后一个子元素对象

      兄弟关系:

                .previousElementSibling 返回当前元素的前一个兄弟元素对象

                . nextElementSibling    返回当前元素的下一个兄弟元素对象(IE9+)

      

        按HTML查找

    what?

      在整个网页或指定父元素下,查找属性或标签符合要求的元素对象。

    what?

      只要是按照基本的条件有选择的查找元素。

    四种方法:

      1、通过id查找html元素

      2、通过类名查找html元素

      3、通过标签名查找html属性

      4、通过元素的name属性查找html元素

      

      按选择器查找:

    按HTML查找每一次只能使用一个查询条件,选择器查找条件复杂的都可以查找。

      1、仅查找一个元素:

        var  elem = 父元素.querySelector(“选择器”);

      2、查找多个元素:

        var  elem = 父元素.querySelectorAll(“选择器”);

       非动态!

      

     鄙视题: getXXX vs SeletorAPI的差别是什么? 如何选择?

      1、返回值: getXXX 返回值:动态集合
         SeletorAPI 返回值:非动态集合
      2、效率: getXXX 首次查询效率高
         SeletorAPI 首次查询效率低
      3、易用: getXXX 条件复杂是,更繁琐


      SeletorAPI 更简单,因为繁琐的工作就交给了选择器
      如果通过一个条件就可以得到元素时,首选getXXX;
      如果条件复杂时,首选SeletorAPI

      

    在JS中修改html:

      DOM分两种,核心DOM,HTML DOM。

    核心DOM:可以操作一切结构文档的API(HTML和XML)

      优点:万能  缺点:繁琐

    HTML DOM:对核心DOM中常用的API的简化

      优点:简单  缺点:不是万能,只有对部分API的简化

    视情况而定使用哪种方法,优先用简单的。

      核心DOM访问属性:

        获得属性值:var value = elem.getAttribute("属性名");

        修改属性值:elem.setAttribute("属性名","属性值");

        判断是否包含属性:var bool != elem.hasAttribute("属性名");

        移除属性:elem.removeAttribute("属性名");

      HTML DOM属性:

        elem.属性名;

        elem.属性名 = "属性值";

        elem.属性名 != "";  //判断是否为空则判断是否包含属性

        elem.属性名 = "";  //属性名设为空则删除

  • 相关阅读:
    live-server
    vue-插槽
    100%的背影
    Luogu P3243 菜肴制作
    CF512E Fox And Polygon
    BZOJ2523/LOJ2646 聪明的学生
    Luogu P3959 宝藏
    Luogu P2280 激光炸弹
    ACAG 0x02-8 非递归实现组合型枚举
    ACAG 0x02-4 费解的开关
  • 原文地址:https://www.cnblogs.com/yeming980912/p/10981536.html
Copyright © 2020-2023  润新知