HTML5 DOM扩展

DOM相对应Html5的扩展

一.选择符API

1. querySelector()方法 :接收一个CSS选择符 ,返回与该模式匹配的第一个元素,若没有匹配到返回null。

其中通过Document类型调用querySelector()方法时,会在文档元素范围内查找匹配元素;

如var body =  document.querySelector("body");

通过Element类型调用querySelector()时,只会在该元素后代元素的范围内查找匹配元素

如var img = document.body.querySelector("img.button");

2. querySelectorAll()方法 :接收一个CSS选择符 ,返回与该模式匹配的所有元素,返回一个Nodelist实例(类Array)若没有匹配到返回null。

所以可以使用Array的一些熟悉如item() [] length

3. matchesSelector()方法:接收一个css选择符,如果调用元素与该选择符匹配,返回true。否则返回false.

二.元素遍历

对于元素间的空格,IE9及之前版本不会返回文本节点,而其他所有浏览器都会返回文本节点点。这样会导致用DOM0时使用childNodes和firstChild等熟悉时的行为不一致。为了弥补这一差异 Element Traversal API 为DOM元素添加了一下5个属性:

childElementCount: 返回子元素的个数(不包括文本节点和注释)

firstElementChild: 指向第一个子元素 (firstchild的元素版)

lastElementChild: 指向最后一个子元素 (lastchild的元素版)

previousElementSibling:指向前一个同辈元素

nextElementSibling:指向后一个同辈元素

三.HTML5与JavaScript的扩充

1.getElementsByClassName()方法:接收一个参数包含一个或多个类名字符串(类名的先后顺序不重要)返回带有指定类的所有元素的NodeList。

好处:方便地为带有某些类的元素添加事件处理程序,从而不必再局限于使用ID或标签名

2.HTML5新增了classList属性 来操作类名的。 add(value):将指定的字符串添加到列表中。如果值已经存在,就不添加了

contain(value)表示列表中是否存在给定的值,如果存在则返回true ;remove(value)从列表中删除给定的字符串;

toggle(value) 如果列表中已经存在给定的值,删除它,如果列表中没有给定的值则添加它。

注:有了classList属性,除非你需要全部删除所有类名,或者完全重写元素的class属性,否则就用不到className属性了

目前支持classList属性的浏览器有Firefox3.6+ 和chrome

3.焦点的管理

首先是document.activeElement属性  获得焦点是document.activeElement属性的值为true 默认情况下文档刚刚加载完成时,

document.activeElement中保存的是document.body元素的引用。文档加载期间,document.ativeElement的值为null.

然后是document.hasFocus()方法 用于确定文档是否获得了焦点

目前实现这两种属性的浏览器包括IE4+ firefox3+ safari4+ chrome 和Opera8+

4.在HTML5中HTMLDocumenet的变化

1.document.readyState属性用于保存两个可能的值一是loading 正在加载文档 二是complete已经加载完文档

以前实现这两种属性的浏览器包括IE4+ firefox3.6+ safari chrome 和Opera9+但现在HTML5纳入了标准

2.document.compatMode的值 在标准模式下是CSS1Compat 在混杂模式是BackCompat

以前实现这两种属性的浏览器包括IE6+ firefox safari3.1+ chrome 和Opera但现在HTML5纳入了标准

3.document.head属性 它与document.getElementByTagName("head")[0]是一样的

可使用 var  head = document.head  || document.getElementByTagName("head")[0] 来实现兼容

4.document.charset HTML5中默认使用的是“UTF-16”  可使用这个属性来进行设置成"UTF-8"

document.defaultCharset属性默认的字符集

支持document.charset 属性的浏览器有IE、firefox safari opera chrome

支持document.defaultCharset属性的浏览器有IE safari chrome

5.如果需要给元素添加一些不可见的数据以便进行其他处理,那就要用自定义数据属性。在跟踪链接或混搭应用中,通过自定义数据属性能便

地知道点击来自页面中的哪个部分 在HTML5中使用创建自定义属性是前面要加一个前缀

目前支持自定义数据属性的浏览器有Firefox6+ 和chrome

6.innerHTML属性返回与调用元素的所有子节点对应的HTML标记(包括元素、注释和文本节点) 使用innerHTML属性有些限制:一是通过

innerHTML插入<script>元素并不会执行其中的脚本(读模式和写模式的概念与差别还不清楚)

outerHTML属性返回调用它的元素及所有子节点的HTML标签;它显示的内容还包括最为一层的标签

支持outerHTML属性的浏览器有IE4+ safari4+ chrome 和Opera8+ firefox8+

insertAdjacentHTML()方法,它是插入标记的新增方式;接收两个参数:插入位置和要插入的HTML文本

第一个参数有4个选项且必须是小写 :一是beforebegin:在当前元素之前插入一个紧邻的同辈元素 ;二是afterbegin,在当前元素之下插

入一个新的子元素或者在第一个子元素之前再插入新的子元素;三是beforeend:在当前元素之下插入一个新的子元素或者在最后一个子元

素之后再插入新的子元素; 四是afterend,在当前元素之后插入一个紧邻的同辈元素。

如element.insertAdjcentHTML("afterend","<p> hello world !</p>")   //作为后一个同辈元素插入

7.HTML5标准scrollIntoview()控制页面滚动 它可以再所有HTML元素上调用,通过滚动浏览器窗口或某个容器元素,调用元素就可以出现在

视口中

四.专有扩展

1.document.documentMode用于返回IE当前的文档模式。

2.element.children属性与elementchildNodes没有区别,都表示一个节点的子节点数组

3.document.documentElement.contains()通过它可以判断某个节点是不是另一个节点的后代。

时间: 2024-12-23 15:49:58

HTML5 DOM扩展的相关文章

html5——DOM扩展

元素获取 1.document.getElementsByClassName ('class') 通过类名获取元素,以类数组形式存在. 2.document.querySelector('div') 通过CSS选择器获取元素,符合匹配条件的第1个元素. 3.document.querySelectorAll('selector') 通过CSS选择器获取元素,以类数组形式存在. 类名操作 1.Node.classList.add('class') 添加class 2.Node.classList.

DOM扩展札记

Selector API HTML5 DOM扩展 Element Traversal规范 Selector API 众多JavaScript库中,最常用的一个功能就是根据css选择符选择与某个模式匹配的DOM元素 Selector API Level1的核心是两个方法: querySelector.querySelectorAll 可以通过Document及Element的实例来调用他们.当使用Element调用时,首先会在整个文章中查询,然后取出在Element子节点中的元素返回.如果传入了不

javascript高级程序设计 第十一章--DOM扩展

javascript高级程序设计 第十一章--DOM扩展DOM最主要的扩展就是选择符API.HTML5和Element Traversal Selectors API:定义了两个方法 querySelector() 和 querySelectorAll(),能够基于CSS选择符从DOM中取得元素.querySelector()方法接收一个CSS选择符,返回该模式匹配的第一个元素,querySelectorAll()接收的参数一样,但是返回NodeList实例: matchesSelector()

JavaScript学习 八、DOM扩展

对DOM的两个主要扩展是Selectors API(选择符API)和HTML5.这两个扩展都是源自开发社区.此外还有一个不那么因为瞩目的ELement Traversal(元素遍历)规范.为DOM添加了一些属性. 选择符API 众多JavaScript 库中最常用的一项功能,就是根据CSS选择符选择与某个模式匹配的DOM元素. 实际上 jQuery 的核心就是通过CSS选择符查询DOM 文档取得元素的引用,从而抛开了 getElementById() 和 getElementsByTagName

DOM扩展学习笔记

对DOM的两个主要扩展是Selectors API(选择符API)和HTML5,还有一个不太瞩目的Element Traversal元素遍历规范为DOM添加了一些属性,另外还有一些专有扩展. 选择符API 元素遍历 HTML5 专有扩展 选择符API 让浏览器原生支持css查询,原理就是所有实现这一功能的JavaScript库都会写一个基础的CSS解析器,然后再使用已有的DOM方法查询文档并找到匹配的节点.当把这个功能变成原生API后,解析和树查询操作可以在浏览器内部通过编译后的代码来完成,极大

DOM扩展:DOM API的进一步增强[总结篇-下]

本文承接<DOM扩展:DOM API的进一步增强[总结篇-上]>,继续总结DOM扩展相关的功能和API. 3.6 插入标记 DOM1级中的接口已经提供了向文档中插入内容的接口,但是在给文档插入大量HTML标记的时候操作还是很繁杂的,每次插入一个元素,不仅要调用创建元素和文本节点的接口,还要调用appendChild等向文档中添加元素的接口,而且在添加时还要按照正确的顺序.而如果使用插入标记的方法,直接向文档中插入HTML字符串,由执行环境自动解析HTML字符串并创建相应的节点并添加到文档中,这

JavaScript的DOM扩展

虽然 DOM 为与 XML 及 HTML 文档交互制定了一系列核心 API,但仍然有几个规范对标准的 DOM进行了扩展.这些扩展中有很多原来是浏览器专有的,但后来成为了事实标准,于是其他浏览器也都提供了相同的实现.本章介绍的三个这方面的规范如下. 1 Selectors API,定义了两个方法,让开发人员能够基于 CSS 选择符从 DOM中取得元素,这两个方法是 querySelector() 和 querySelectorAll() . 2 Element Traversal,为 DOM 元素

10. javacript高级程序设计-DOM扩展

1. DOM扩展 1.1 选择符API l querySelector() 接收一个css选择符,返回与该模式匹配的第一个元素 l querySelectorAll() 接收一个css选择符,返回所有匹配的NodeList元素 1.2 HTML5 1.2.1 与类相关的扩充 l getElementsByClassName() 接收一个参数,一个包含一或者多个类名的字符串,返回带有指定类的所有元素的NodeList l classList属性,add(value),contains(value)

JavaScript学习笔记(十一)---- DOM扩展

(一)DOM扩展 对DOM的主要的扩展是SelectorsAPI(选择符API)和HTML5,还有一个Element Travesal规范. 1.选择符API jQuery的核心就是通过CSS选择符查询DOM文档取得元素的引用,从而抛开了getElementById( ) 和 getElementsByTagName( ). Selectors API Level 1的核心是两个方法:querySelector( )和 querySelectorAll( ). querySelector( ):