学习笔记(7):JavaScript学习-DOM(上)

一· JavaScript组成

JavaScript和ECMAScript通常都被人们用来表达相同的含义,但JavaScript的含义却比ECMA-262中规定的要多得多。
  组成部分:

1、核心( ECMAScript):JavaScript语言的核心,包含基本语法、数据类型、关键字…
2、文档对象模型( DOM):提供访问和操作网页内容的方法和接口;可操作HTML中的标签内容、样式、结构;document.write(“你好”),输出内容至网页,这就是DOM中方法。
3、浏览器对象模型( BOM):提供与浏览器交互的方法和接口。可操作浏览器窗口,比如浏览器地址栏,浏览器访问历史等;window.alert(“你好”);,浏览器弹出一个消息对话框,这就是BOM中的方法。
在这里插入图片描述

二. DOM和BOM简介对比

DOM:文档对象模型,主要是操作是HTML中标签;

BOM:浏览器对象模型,主要是操作的浏览器窗口;

DOM(Document Object Model)即文档对象模型使JavaScript有能力与HTML 文档的所有元素“对话”。

BOM(Browser Object Model)即浏览器对象模型使 JavaScript 有能力与浏览器“对话”。

BOM提供了访问浏览器各种功能部件的途径,例如浏览器窗口本身、浏览历史等;而DOM提供了访问浏览器中网页文档各元素的途径,包括页面中的超链接、表单等各种HTML元素及其内容。

BOM与DOM是独立于程序语言和平台的标准,W3C定义了一组标准接口,而这些接口在浏览器中以对象的形式实现。BOM与DOM均由一组对象组成,对象定义了属性和方法。

BOM与DOM关系非常密切。BOM的window对象中包含一个document属性,该属性是对DOM模型的document对象的引用,代表了当前窗口中网页文档所对应的document对象,通过该属性可以访问网页文档的各种内容。

DOM

文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。可以通过DOM接口改变网页的内容、结构和样式。

Dom树状图

在这里插入图片描述

  • 文档:一个页面就是一个文档,DOM中使用document表示
  • 元素:页面中的所有的标签都是元素,DOm中使用element表示
  • 节点:网页中所有的元素都是节点,DOM中使用node表示
获取元素

DOM提供的API:

  • getElementById():参数为字符串,需要加引号,找不到元素则返回null
  • getElementsByTagName()
  • getElementsByClassName()

H5提供的新方法:

  • querySelector()
  • querySelectorAll()

根据元素的id获取

  • 1.使用getelementById()进行获取元素对象
    基本语法为:
<body>
      <div id="time"></div>
      <script>
        // 1.get获取  element元素  by通过  驼峰命名法
        //2参数id是大小写敏感的字符串
        //3返回元素是一个对象objcet
         var timer=document.getElementById('time')
         console.log(timer);
      </script>
</body>
  • 2.根据标签的名获取
    使用getelementsByTagName()方法可以返回带有指定标签的对象集合
<body>
     <ol>
       <li>燕子,没有你我怎么活啊</li>
       <li>燕子,没有你我怎么活啊</li>
       <li>燕子,没有你我怎么活啊</li>
       <li>燕子,没有你我怎么活啊</li>
       <li>燕子,没有你我怎么活啊</li>
     </ol>
     <script>
       //1返回的是获取过来的元素对象的集合,以伪数组的形式存储的,如果页面中没有对应的元素直接返回[]空的伪数组
      var listEBT=document.getElementsByTagName('li')
      console.log(listEBT);
     </script>
</body>
  • 3.通过html5新增的方法获取

    • 3.1getElementsByClassName根据类名获得某些元素的集合
在这里插入代码片<body>
  <div class="box">盒子</div>
  <div class="box">盒子</div>
</body>
<script> 
//1getElementsByClassName根据类名获得某些元素的集合
 var  getBox=document.getElementsByClassName('box')
      console.log('getBox');
</script>
  • 3.2document.querySelector(‘选择器’)根据指定选择器返回第一个元素对象
<body>
  <div class="box">盒子</div>
  <div class="box">盒子</div>
<div id="nav">
  <li>首页</li>
  <li>我的</li>
</div>
</body>
<script> 
//querySelector返回指定选择器的第一个元素对象切记里面的选择器需要加符号.box,#nav
      var boxs=  document.querySelector('.box')
      console.log(boxs);

</script>
  • 3.3querySelectorAll()返回指定选择器的所有元素的集合
<body>
  <div class="box">盒子</div>
  <div class="box">盒子</div>
<div id="nav">
  <li>首页</li>
  <li>我的</li>
</div>
</body>
<script> 
//querySelectorAll()返回指定选择器的所有元素的集合
     var listBox =document.querySelectorAll('.box')
     console.log(listBox);
</script>
  • 4.获取body元素
<body>
<script> 
    //获取body元素
    var bodyEle=document.body;
    console.log(bodyEle);
  </script>
</body>
  • 5获取html元素
<script> 
    //获取body元素
    var htmlEle=document.documentElement;
    console.log(htmlEle);
  </script>
属性操作
1.获取属性

1.获取内置属性:ele.Attr
2.获取自定义属性(标准):ele.getAttribute(‘Attr’)

2.设置属性

2.1.ele.Attr = 'value’

2.2.ele.setAttribute(‘Attr’, ‘value’)

2.3.需要注意的是修改类名的时候,两种方法对类名属性要求不同:

  • 1.ele.className = 'newCLassName’
  • 2.ele.setAttribute(‘class’, ‘newClassName’)
    这是由于在js中,class为保留字
3.移除属性

3.1ele.removeAttribute(‘Attr’)

4.获取自定义属性

4.1.ele.getAttribute(‘data-attr’):兼容性好

4.2.ele.dataset.attr 或 ele.dataset[‘attr’]

  • 1.dataset 是一个对象, 存放所有以data开头的自定义属性
  • 2.dataset只能获取“data-”开头的属性
  • 3.如果自定义属性中有多个链接的单词,JS中采用驼峰命名法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值