dom 文档对象模型
js有如下功能
JavaScript 能够改变页面中的所有 html 元素
JavaScript 能够改变页面中的所有 HTML 属性
JavaScript 能够改变页面中的所有 css 样式
JavaScript 能够对页面中的所有事件做出反应
(JS只能操作行内样式,不能操作内嵌样式和外部样式)
如何查找HTML元素
1:通过ID查找元素,如果找到ID="a"的元素,就以对象x的形式返回,如果没有找到,则x为null
var x=document.getElementById("a");
2:通过标签名查找元素
var x=document.getElementsByTagName("")[]
3:通过class类元素名称查找元素
var x=document.getElementsByClassName("");
4:getElementsByName() 方法可返回带有指定name的对象的集合。
5:返回文档中匹配指定的选择器所匹配到。
var element = document.querySelector(selectors)
其中:
selectors是一个字符串,包含一个或是多个 CSS 选择器,多个以逗号分隔
element,返回值是一个element对象(DOM元素)。当没有返回值时,则返回null
6:
var elementList = document.querySelectorAll(selectors);
selectors是一个字符串,包含一个或是多个 CSS 选择器,多个以逗号分隔
elementList,返回值是一个NodeList元素列表。
属性操作
getAttribute:语法:元素节点.getAttribute(元素属性名),功能获取元素节点中指定属性属性值
setAttribute:语法:元素节点.setAttribute(元素属性名),功能创建或者改变元素节点的属性
removeAttribute:语法:removeAttribute(元素属性名),功能删除元素中指定元素
DOM改变HTML元素
document.write直接向HTML输出内容
改变HTML内容 innerHTML ,innertext。二者区别innerHTML可以解析标签,而innertext不能,如果所选节点内部有标签就会直接将其输出
DOM事件
(添加方式,可以直接添加到行内事件,还可以用事件处理器调用一个函数)
当用户点击鼠标时 onclick‘
onchange 事件
onload 和 onunload 事件会在用户进入或离开页面时被触发,onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。
onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。
onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件,最后,当完成鼠标点击时,会触发 onclick 事件。
监听事件:
例如点击按钮时候触动:
element.addEventListener(event, function, useCapture);
第一个参数是事件的类型 (如 "click" 或 "mousedown").
第二个参数是事件触发后调用的函数。
第三个参数是个布尔值用于描述事件是冒泡还是捕获。
冒泡和捕获
在div中插入p元素,给p元素一个点击事件,如果是冒泡,会从内部向外触发,先触发p元素,然后再触发div元素
如果是捕获,就会先触发外部元素,然后再触发内部元素。点击p就会先触发div再触发p元素
默认值为false时,就会触发冒泡事件 默认值为true时,会触发捕获事件
DOM是很慢的,其元素非常庞大,页面的性能问题鲜有由JS引起的,大部分都是由DOM操作引起的。虚拟的DOM的核心思想是:对复杂的文档DOM结构,提供一种方便的工具,进行最小化地DOM操作。
浏览器解析HTML文档生成DOM树的过程,以下是一段HTML代码,以此为例来分析解析HTML文档的原理.解析HTML文档构建DOM树的理解过程可分为两个主要模块构成,即标签解析、DOM树构建
javascript获取DOM对象的多种方法:通过id获取 、通过class获取、通过标签名获取、通过name属性获取、通过querySelector获取、通过querySelectorAll获取等
遍历DOM节点常用一般用节点的 childNodes, firstChild, lastChild, nodeType, nodeName, nodeValue属性。在获取节点nodeValue时要注意,元素节点的子文本节点的nodeValue才是元素节点中文本的内容。
要构建自己的虚拟DOM,需要知道两件事。你甚至不需要深入 React 的源代码或者深入任何其他虚拟DOM实现的源代码,因为它们是如此庞大和复杂——但实际上,虚拟DOM的主要部分只需不到50行代码。
事件冒泡: 即事件开始时由最具体的元素(文档中嵌套层数最深的那个点)接收,事件捕获:不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件.与此同时,我们还需要了解dom事件绑定处理的几种方式:
先列出我的理解,然后再从具体的例子中说明:DOM操作本身应该是同步的(当然,我说的是单纯的DOM操作,不考虑ajax请求后渲染等);DOM操作之后导致的渲染等是异步的(在DOM操作简单的情况下,是难以察觉的)
早期由于浏览器厂商对于浏览器市场的争夺,各家浏览器厂商对同一功能的JavaScript的实现都不进相同,本节内容介绍JavaScript的DOM事件模型及事件处理程序的分类。
设置定义属性值 :data-value=.., 2.直接获取 3.通过this.$refs.***获取 1.目标DOM定义ref值: 2.通过 【this.$refs.***.属性名】 获取相关属性的值: this.$refs.*** 获取到对应的元素 ...
框架用多了,你还记得那些操作 DOM 的纯 JS 语法吗?看看这篇文章,来回顾一下~ 操作 className,addClass给元素增加 class,使用 classList 属性
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!