博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML DOM笔记
阅读量:5127 次
发布时间:2019-06-13

本文共 2153 字,大约阅读时间需要 7 分钟。

HTML DOM (文档对象模型)

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

HTML DOM 模型被构造为对象的树

 

查找 HTML 元素

通常,通过 JavaScript,您需要操作 HTML 元素。

为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:

  • 通过 id 找到 HTML 元素
  • 通过标签名找到 HTML 元素
  • 通过类名找到 HTML 元素

hello baby

View Code

 

HTML

old header

hello world

View Code

 

css:

my heading

hello world

View Code
View Code

 

事件:

mouse over me
View Code

 

addEventListener() 方法

addEventListener() 方法用于向指定元素添加事件句柄。

addEventListener() 方法添加的事件句柄不会覆盖已存在的事件句柄。

你可以向一个元素添加多个事件句柄。

你可以向同个元素添加多个同类型的事件句柄,如:两个 "click" 事件。

你可以向任何 DOM 对象添加事件监听,不仅仅是 HTML 元素。如: window 对象。

addEventListener() 方法可以更简单的控制事件(冒泡与捕获)。

当你使用 addEventListener() 方法时, JavaScript 从 HTML 标记中分离开来,可读性更强, 在没有控制HTML标记时也可以添加事件监听。

你可以使用 removeEventListener() 方法来移除事件的监听。

语法

element.addEventListener(
event, function, useCapture);
 

第一个参数是事件的类型 (如 "click" 或 "mousedown").

第二个参数是事件触发后调用的函数。

第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。

 

View Code

事件冒泡或事件捕获?

事件传递有两种方式:冒泡与捕获。

事件传递定义了元素事件触发的顺序。 如果你将 <p> 元素插入到 <div> 元素中,用户点击 <p> 元素, 哪个元素的 "click" 事件先被触发呢?

在 冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: <p> 元素的点击事件先触发,然后会触发 <div> 元素的点击事件。

在 捕获 中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: <div> 元素的点击事件先触发 ,然后再触发 <p> 元素的点击事件。

addEventListener() 方法可以指定 "useCapture" 参数来设置传递类型:

 

addEventListener(
event
function
useCapture);
 

默认值为 false, 即冒泡传递,当值为 true 时, 事件使用捕获传递。

 

点击段落,我是冒泡。

点击段落,我是捕获。

View Code

removeEventListener() 方法

removeEventListener() 方法移除由 addEventListener() 方法添加的事件句柄

div 元素添加了 onmousemove 事件句柄,鼠标在桔红色的框内移动时会显示随机数。

点击按钮移除 DIV 的事件句柄

View Code

创建新的 HTML 元素

如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素

this is a paragraph.

this is another paragraph.

View Code

删除已有的 HTML 元素

this is a paragraph.

this is another paragraph.

View Code

如果能够在不引用父元素的情况下删除某个元素,就太好了。

不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。

这是常用的解决方案:找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素:

var child=document.getElementById("p1");

child.parentNode.removeChild(child);

 

 

 

转载于:https://www.cnblogs.com/whats/p/5032219.html

你可能感兴趣的文章
启动Docker后台容器,测试运行Hello-world
查看>>
Redis的持久化
查看>>
Power BI Desktop 安装环境
查看>>
1055. 集体照 (25)
查看>>
C#飞行棋总结
查看>>
[转载]介绍一个JSONP 跨域访问代理API-yahooapis
查看>>
treeview 点击时选中节点
查看>>
[转载]WCF 几种常见错误
查看>>
svn使用方法以及使用教程
查看>>
15 个使用 jQuery Masonry 进行布局的网站
查看>>
qTip2 精致的jQuery提示信息插件
查看>>
bzoj3992
查看>>
class和构造函数
查看>>
jQuery实现Ajax功能示例
查看>>
记忆,是一座沙城!
查看>>
python求100以内的素数
查看>>
POJ 1548 Robots(最小路径覆盖)
查看>>
TXT小说朗读正式版
查看>>
JavaLearning:日期操作类
查看>>
vs2015转到定义没反应
查看>>