前端学习之JavaScript DOM以及DOM操作的基础知识

转载自https://blog.csdn.net/weixin_42402867/article/details/105567787?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159986352219195188328456%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159986352219195188328456&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-9-105567787.pc_first_rank_v2_rank_v28&utm_term=javascript&spm=1018.2118.3001.4187

在了解了javascript的语言基础和特性后

javascript真正大放光彩的地方来了——这就是javascript DOM

 

Javascript DOM

DOM(Document Object Model),文档对象模型。

是W3C组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口;W3C已经定义了一系列DOM接口,通过这些DOM接口可以改变网页的内容、结构和样式。

简单的说就是一套操作文档内容的方法。

需要注意的是,我们需要把DOM当作一个整体,不能分割看待,即DOM(文档对象模型)是一套操作文档内容的方法。

这里写图片描述

  • 文档:一个页面就是一个文档,DOM中使用document表示
  • 元素:页面中的所有标签都是元素,DOM中使用element表示
  • 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM中使用node表示

DOM把以上内容看作都是对象

 

实例:

 
  1. <!DOCTYPE html>

  2. <html>

  3. <head>

  4. <title>Shopping list</title>

  5. <meta charset="utf-8">

  6. </head>

  7. <body>

  8. <h1>What to buy</h1>

  9. <p id="buy" title="a gentle reminder">Don't forget to buy this stuff</p>

  10. <ul id="purchases">

  11. <li>A tin od beans</li>

  12. <li>Cheese</li>

  13. <li>Milk</li>

  14. </ul>

  15. </body>

  16. </html>

用树表示这个网页的结构:

 

 

1、获取DOM四种基本方法

1、getElementById()

2、getElementsByTagname()

3、getAttribute()

4、setAttribute()

 

常用的两种解析:

1. getElementById():

参数:元素的ID值。 (元素节点简称元素) 
返回值:一个有指定ID的元素对象(元素是对象) 
注:这个方法是与document对象相关联,只能由document对象调用。 
用法:document.getElementById(Id) 

例:

typeof document.getElementById("purchases");//object

代码演练:

 
  1. <!DOCTYPE html>

  2. <html lang="zh">

  3.  
  4. <head>

  5. <meta charset="UTF-8">

  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">

  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">

  8. <title>Document</title>

  9. </head>

  10.  
  11. <body>

  12. <div id="time">2020-04-16</div>

  13. <script>

  14. // 1. 因为我们文档页面从上往下加载,所以先得有标签 所以我们script写到标签的下面

  15. // 2. get 获得 element 元素 by 通过 驼峰命名法

  16. // 3. 参数 id是大小写敏感的字符串

  17. // 4. 返回的是一个元素对象

  18. var timer = document.getElementById('time');

  19. console.log(timer);

  20. console.log(typeof timer);

  21. // 5. console.dir 打印我们返回的元素对象 更好的查看里面的属性和方法

  22. console.dir(timer);

  23. </script>

  24. </body>

  25.  
  26. </html>

看一下控制台打印的是什么

可以看到 console.log(timer)打印出来的是整个div标签

timer类型是个对象

 

2. getElementsByTagName():

参数:元素名
返回值:一个对象数组。这个数组里每个元素都是对象,每个对象分别对应着文档里给定标签的一个元素。
注:这个方法可和一般元素关联。这个方法允许我们把通配符当作它的参数,返回在某份html文档里总共有多少个元素节点。
用法:element.getElementsByTagName(TagName) 

例:

 
  1. var items=document.getElementsByTagName("li");

  2. items.length;//3

  3. document.getElementsByTagName(“*”);//12

 

 

2、事件基础

3.1 事件概述

JavaScript使我们有能力创建动态页面,而事件是可以被JavaScript侦测到的行为。

简单理解:触发——>响应机制

网页中每个元素都可以产生某些可以触发JavaScript的事件,例如,我们可以在用户点击某按钮产生一个事件,然后去执行某些操作

3.2 事件三要素

事件源 、事件类型、事件处理程序,我们也称为事件三要素

(1) 事件源 事件被触发的对象   谁  
(2) 事件类型  如何触发 什么事件 比如鼠标点击(onclick) 还是鼠标经过 还是键盘按下
(3) 事件处理程序  通过一个函数赋值的方式 完成

代码实例

 
  1. <!DOCTYPE html>

  2. <html lang="zh">

  3.  
  4. <head>

  5. <meta charset="UTF-8">

  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">

  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">

  8. <title>Document</title>

  9. </head>

  10.  
  11. <body>

  12. <button id="btn">唐伯虎</button>

  13. <script>

  14. // 点击一个按钮,弹出对话框

  15. // 1. 事件是有三部分组成 事件源 事件类型 事件处理程序 我们也称为事件三要素

  16. //(1) 事件源 事件被触发的对象 谁 按钮

  17. var btn = document.getElementById('btn');

  18. //(2) 事件类型 如何触发 什么事件 比如鼠标点击(onclick) 还是鼠标经过 还是键盘按下

  19. //(3) 事件处理程序 通过一个函数赋值的方式 完成

  20. btn.onclick = function() {

  21. alert('点秋香');

  22. }

  23. </script>

  24. </body>

  25.  
  26. </html>

运行结果

 

3.3 执行事件的步骤

1、获取事件源

2、注册事件(绑定事件)

3、添加事件处理程序(采取函数赋值形式)

 

代码实战

 
  1. <!DOCTYPE html>

  2. <html lang="zh">

  3.  
  4. <head>

  5. <meta charset="UTF-8">

  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">

  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">

  8. <title>Document</title>

  9. </head>

  10.  
  11. <body>

  12. <div>123</div>

  13. <script>

  14. // 执行事件步骤

  15. // 点击div 控制台输出 我被选中了

  16. // 1. 获取事件源

  17. var div = document.querySelector('div');

  18. // 2.绑定事件 注册事件

  19. // div.onclick

  20. // 3.添加事件处理程序

  21. div.onclick = function() {

  22. console.log('我被选中了');

  23.  
  24. }

  25. </script>

  26. </body>

  27.  
  28. </html>

运行结果

鼠标点击123—>控制台打印

 

常用的DOM事件

  • onclick事件---当用户点击时执行
  • onload事件---当用户进入时执行
  • onunload事件---用用户离开时执行
  • onmouseover事件---当用户鼠标指针移入时执行
  • onmouseout事件---当用户鼠标指针移出时执行
  • onmousedown事件---当用户鼠标摁下时执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值