当前位置: 首页 > news >正文

【JavaScript】JS的三大组成-DOM

文章目录

    • DOM介绍
      • 获取元素
        • 1. 非常规元素
        • 2. 常规元素
      • 操作元素属性
      • 属性分类
        • - 原生属性 w3c 标准内存在的属性
        • - 自定义属性
        • - H5 自定义属性
      • 操作元素属性
        • 原生属性操作
        • 自定义属性
        • H5 自定义属性

DOM介绍

    document object model 文档对象模型
    就是操作页面 (元素  标签)
        -> 修改文本
        -> 修改超文本
        -> 元素 增删改查
        -> 操作标签样式
        -> 操作标签类名
        -> 操作标签属性...

    dom操作的过程
        1. 找到元素
        2. 操作

获取元素

    js中把标签分为两类

1. 非常规元素

        -> html     document.documentElement
        -> head     document.head
        -> body     document.body

2. 常规元素

        1) 根据id获取元素
            -> 语法  document.getElementById('id名字')
            -> 返回值
                如果页面上有该id名字的元素, 那么拿到该元素
                如果没有,返回null
        2) 根据class获取元素
            -> 语法  document.getElementsByClassName('class名字')
            -> 返回值  是一个伪数组
                如果页面上有该class名字的元素,那么全部获取,放到伪数组中返回
                如果没有,返回一个空数组
        3) 根据标签名获取元素
            -> 语法 document.getElementsByTagName('标签名')
            -> 返回值  是一个伪数组
                如果页面上有 该标签名对应的元素 ,那么全部获取,放到伪数组中返回
                如果没有,返回一个空数组
        4) 根据选择器获取一个元素
            -> 语法  document.querySelector('选择器')
            -> 返回值
                如果页面上有 该选择器对应的元素, 那么获取满足条件的第一个
                如果没有,返回null
        5) 根据选择器 获取一组元素
            -> 语法 document.querySelectorAll('选择器')
            -> 返回值  必然是一个伪数组
                如果页面上有 该选择器对应的元素, 那么全部获取,放到一个伪数组中返回
                如果没有,返回一个空数组
 <body>
    <div id="box">1</div>
    <div class="box">2</div>
    <div class="box">3</div>
    <div class="box">4</div>
    <div class="box">5</div>

    <div class="laowang">
      <div class="xiaowang">6</div>
    </div>
    <div class="laoli">
      <div class="xiaowang">7</div>
    </div>
</body>
<script>
  // 获取非常规标签
//   console.log(document.documentElement);
//   console.log(document.head);
//   console.log(document.body);

// 1. 根据id获取元素
//   console.log(document.getElementById("box"));

// 2. 根据class获取元素
//   console.log(document.getElementsByClassName("box"));
//   var list = document.getElementsByClassName("box");
//   for (var i = 0; i < list.length; i++) {
  //     console.log(list[i]);
  //   }

  // 3. 根据标签名获取元素
  //   console.log(document.getElementsByTagName("div"));

  // 4. 通过选择器获取元素
  //   console.log(document.querySelector(".laoli .xiaowang"));

  // 5. 通过选择器获取一组元素
  console.log(document.querySelectorAll("div:nth-of-type(2n)"));
</script>

操作元素属性

认识元素属性
属性的格式 <div 属性=‘属性值’>

属性分类

- 原生属性 w3c 标准内存在的属性

        eg: class id style border target href src。。。。

- 自定义属性

        没有特殊意义,是我们自己设置的属性
        <div xiaohua='ymh' ></div>

- H5 自定义属性

        以 data-开头的属性 叫做H5 自定义属性

操作元素属性

    - 操作元素属性的时候,尽量不操作元素的类名和样式

原生属性操作

        - 直接使用属性名操作就可以

                                 语法  元素.属性名
                             -> 写
                                 语法  元素.属性名=值
                                 一些表单控件,属性值是布尔值(disabled, checked selected)

自定义属性

        - 可以用来操作原生属性,但是一般不推荐
        - 增 
             etAttribute(属性名, 属性值)
        - 删除
             emoveAttribute(属性名)
        - 查 
             etAttribute(属性名)

H5 自定义属性

        - data- 表示是一个h5自定义属性
        - data- 后面的内容才是属性名
        - 每一个元素身上天生带有一个属性 叫做dataset, 是一个类似对象的结构,内部记录的就是h5自定义的属性,所有可以直接操作dataset
        - 使用对象语法操作dataset
<body>
    <div class="box" id="box" data-list="list" xiaohua="小花">啦啦啦</div>
    <table
      cellpadding="10"
      cellspacing="10"
      border="1"
      rules="rows"
      width="100"
    ></table>
    <input type="text" />
    <p>哈哈哈哈</p>
    <h2 data-list="100" data-a="200" data-b="abcd">哈哈哈哈</h2>
  </body>

  <script>
    // 0 获取元素
  //   var table = document.querySelector("table");
  //   var inp = document.querySelector("input");
  //   // 1. 获取table的原生属性
  //   //   console.log(table.border);
  //   // 2. 设置input的原生属性
  //   inp.type = "checkbox";
  //   inp.checked = false;

  // 增加自定义属性
  // 0 获取元素
  //   var p = document.querySelector("p");
  //   p.setAttribute("hello", 100);
  //   //   p.removeAttribute("hello");

  //   console.log(p.getAttribute("hello"));

  // 操作h5自定义属性
  // 0 获取元素
  var h2 = document.querySelector("h2");
  var h2Dataset = h2.dataset;

  // 获取自定义属性 的a
  //   console.log(h2Dataset.a);
  // 增加自定义属性
  //   h2Dataset["c"] = 1000;
  // 删除自定义属性
  delete h2Dataset.a;
  </script>

相关文章:

  • 【Linux】Linux进程的理解
  • bash 查看变量函数定义和值 (type declare)
  • html+css设计两个摆动的大灯笼
  • 音视频知识介绍(二)
  • github上传代码(亲测实用)
  • Vue 中 CSS scoped 的原理
  • MySQL 数据库练习题记录01
  • 142.环形链表II
  • java短网址平台
  • 【论文阅读】《知识图谱研究综述》;Knowledge Graph:概念及主要应用,主要特征、构建的主要技术、未来研究方向。
  • 通过Django发送邮件
  • 【数组】leetcode27.移除元素(C/C++/Java/Js)
  • Java命令行程序实战:javac编译,jar命令,jar包
  • 七种分布式系统的解决方案,一次性讲给你听!
  • 最长公共子序列
  • 异步通信技术AJAX | 基于JSON、XML的数据交换
  • 实战:一个脚本实现统计linux进程相关的信息
  • 免费开源的箱包制造行业ERP管理系统介绍
  • 【SpringBoot+Redis】实现多端登录+token自动续期和定期刷新+自定义注解和拦截器实现鉴权(角色和权限校验)
  • 跟着pink老师学JS的第三天总结
  • 长三角铁路持续迎五一出行高峰:今日预计发送旅客418万人次
  • 太空飞梭项目起火,南宁方特东盟神画:明火已扑灭,无人受伤
  • 《水饺皇后》领跑五一档票房,《哪吒2》上座率仍居第一
  • 五一首日出沪高峰,G1503高东收费站上午车速约30公里/小时
  • 2025五一档首日电影票房破亿
  • 澎湃读报丨解放日报8个版聚焦:牢记嘱托,砥砺奋进