DOM笔记(四):HTML 5 DOM复杂数据类型
HTML 5 DOM定义了一下集合、列表等复杂的数据类型用于实现便捷的操作。相对于HTML 4 DOM,HTML 5 DOM增加了HTMLCollection、DOMTokenList、DOMStringMap、HTMLAllCollection、 HTMLFormControlsCollection等。
一、HTMLCollection、HTMLAllCollection和HTMLFormControlsCollection
三个接口均用于表示一组元素组成的列表。HTMLAllCollection和HTMLFormControlsCollection均继承自 HTMLCollection接口,对HTMLCollection接口中定义的namedItem()方法进行了重写。在DOM笔记(一):HTMLDocument接口, 利用document.forms(/images/embeds等)返回一个HTMLCollection对象,document.all则返回一个 HTMLAllCollection对象,document.forms.elements则返回一个 HTMLFormControlsCollection对象,该对象包含了form中的所有表单元素。
属性或者方法 | 数据类型 | 说明 |
length | long | 只读,返回集合中的元素数量。三个接口均有此属性 |
item() | object | 1、根据索引获取集合中的元素。在HTMLCollection中定义
2、在HTMLCollection中有如下等价: |
tags() | HTMLAllCollection | 根据标签名获取元素。在HTMLAllCollection中定义 |
namedItem() | object | 根据name或者id属性获取集合中的元素,区别如下:
1、在HTMLCollection中,先根据name查找,在根据id查找,但是只返回第一个符合的元素。若不存在符合的元素则返回null。存在如下等价: 2、在HTMLAllCollection中,若有多个符合的元素,则返回一个HTMLCollection对象;若只有一个符合元素,则返回该元素。 3、在HTMLFormControlsCollection中,若有多个符合的元素,则返回一个RadioNodeList对象;若只有一个符合元素,则返回该元素。 |
二、HTMLOptionsCollection接口
该接口返回一组元素组成的列表,与HTMLCollection不同的是,它特定于返回的是一组option元素责成的列表,并且重写了length属性
和namedItem()方法。HTMLSelectElement.options属性返回的数据类型就是
HTMLOptionsCollection。
属性或方法名 | 数据类型 | 说明 |
length | long | 可读写。若属性值大于实际的option元素个数,则HTMLSelectElement自动添加空的option元素; 若属性值小于实际的option元素个数,则HTMLSelectElement自动删除多余的option元素 |
add() | void | 插入一个option元素 |
namedItem() | object | 根据name或id获取集合中的元素 |
remove() | void | 删除一个option元素 |
三、DOMTokenList和DOMSettableTokenList
DOMTokenList表示空格隔开的一系列标识。在DOM笔记(三):Element接口和HTMLElement接口中,HTMLElement.classList
属性返回的数据类型就是DOMTokenList。DOMSettableTokenList继承自DOMTokenList,唯一不同的就是增加了
value属性。HTMLLinkElement.size返回的数据类型是DOMSettableTokenList。
属性或方法 | 数据类型 | 说明 |
length | long | 集合中标识的数量 |
value | DOMString | 获取或设置DOMTokenList值 |
add() | void | 插入一个标识 |
contains() | boolean | 判断是否包含某标识 |
remove() | void | 删除一个标识 |
item() | object | 根据索引获取标识 |
toggle() | boolean | 标识存在则删除,不存在则添加 |
toString() | DOMString | 返回对象的字符串形式 |
四、DOMStringMap和NodeList
DOMStringMap接口标示一些“键/值对”组成的集合,可以通过JavaScript语法对键值对进行删除、修改等操作。在DOM笔记(三):Element接口和HTMLElement接口中,HTMLElement.dataset属性返回的数据类型就是DOMStringMap
<html>
<head>
<title>DOMStringMap</title>
</head>
<body>
<img id="ex" data-ship-id="92432" data-x="30" data-y="10"
data-z="90"/>
<script>
var img = document.getElementById("ex");
//访问键值
alert(img.dataset.z);
//设置键值
img.dataset.shipId="343434";
//创建新键值对
img.dataset.defend=100;
//删除键值
delete img.dataset.y;
</script>
</body>
</html>
NodeList接口表示一系列节点组成的列表。document.getElementsByTagName()返回的是NodeList对象。其有一 个只读的length属性,用于返回节点的数量;还有一个item()方法,用于根据索引访问节点。有如下等价方式:
nodelist.item(0) <=>nodelist[0]<=>nodelist(0)
原文首发:http://www.ido321.com/1324.html
下一篇:DOM笔记(五):JavaScript的常见事件和Ajax小结
DOM笔记(四):HTML 5 DOM复杂数据类型的更多相关文章
- 2016.01.07 DOM笔记(二) DOM节点
node节点属性 nodeName属性 oneBox= document.getElementsById('box');var s = oneBox.nodeName; //nodeName与tag ...
- DOM笔记(三):Element接口和HTMLElement接口
一.Element接口 Element接口表示一个元素,该接口扩展自Node接口,自然继承了Node接口的属性和方法,也有一套针对元素的属性和方法. Element接口常见的属性比较少,常用的就是一个 ...
- DOM笔记(十):JavaScript正则表达式
一.RegExp ECMAScript通过RegExp类型类支持正则表达式,语法和Perl类似: var exp = /pattern/flags; patternb部分是任何简单的或复杂的正则表达式 ...
- DOM笔记(二):Node接口
所有的节点都使用Node接口来表示,可以使用很多方法去获取节点,如document.getElementsByTagName().document.getElementsByName()等均返回一个N ...
- 《DOM Scripting》学习笔记-——第三章 DOM
<Dom Scripting>学习笔记 第三章 DOM 本章内容: 1.节点的概念. 2.四个DOM方法:getElementById, getElementsByTagName, get ...
- JAVA与DOM解析器提高(DOM/SAX/JDOM/DOM4j/XPath) 学习笔记二
要求 必备知识 JAVA基础知识.XML基础知识. 开发环境 MyEclipse10 资料下载 源码下载 sax.dom是两种对xml文档进行解析的方法(没有具体实现,只是接口),所以只有它们是无 ...
- DOM笔记(十):JavaScript正則表達式
一.RegExp ECMAScript通过RegExp类型类支持正則表達式,语法和Perl类似: var exp = /pattern/flags; patternb部分是不论什么简单的或复杂的正則表 ...
- 如鹏网学习笔记(十)DOM
DOM笔记一.DOM简介 Document Object Model 文档对象模型 DOM的节点树模型:整个文档按照从大到小的节点划分,每一个内容都算作一个节点 DOM API 编程接口 可以用来操作 ...
- DOM笔记(十二):又谈原型对象
因为之前谢过一篇关于原型对象的笔记:浅谈JavaScript中的原型模式.现在我又重新看到这个话题,对原型有了进一步的理解,所以,又要谈谈原型对象. 一.理解原型对象 创建的每一个函数都有一个prot ...
随机推荐
- 【mongoDB运维篇①】用户管理
3.0版本以前 在mongodb3.0版本以前中,有一个admin数据库, 牵涉到服务器配置层面的操作,需要先切换到admin数据库.即 use admin , 相当于进入超级用户管理模式,mongo ...
- AspectJ 出现错误::0 can't find referenced pointcut 的解决之道
使用AspectJ注解开发AOP应用时,会遇到以下问题: ::0 can't find referenced pointcut 这个问题,与你所在的开发环境有关,如下表 jdk version spr ...
- C++:对象的赋值和复制
3.6.1 对象赋值语句 如同基本类型赋值语句一样,同类型的对象之间也可以进行赋值,即一个对象的值可以赋给另一个对象.这里所指的对象的赋值是指对其中的数据成员赋值,而不对成员函数赋值.例如:A和B是同 ...
- 深度神经网络入门教程Deep Neural Networks: A Getting Started Tutorial
Deep Neural Networks are the more computationally powerful cousins to regular neural networks. Learn ...
- NDK(13)JNIEnv和JavaVM
转自: http://www.cnblogs.com/canphp/archive/2012/11/13/2768937.html JNIEnv是一个与线程相关的变量,不同线程的JNIEnv彼此独立 ...
- POJ 2409 Let it Bead(polay计数)
题目链接:http://poj.org/problem?id=2409 题意:给出一个长度为m的项链,每个珠子可以用n种颜色涂色.翻转和旋转后相同的算作一种.有多少种不同的项链? 思路: (1) 对于 ...
- 【HDOJ】1800 Flying to the Mars
1. 题目描述挺简单的一道题,给定$n$个大整数,求出现最多的次数. 2. 基本思路这题是可以使用哈希做,ELFHash等哈希都可以过. 3. 代码 /* 1800 */ #include <i ...
- Awesome Algorithms
Awesome Algorithms A curated list of awesome places to learn and/or practice algorithms. Inspired by ...
- ZOJ 3607 Lazier Salesgirl(贪心)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3607 题意:一个卖面包的小姑娘,给第i个来买面包的人的价格是pi, ...
- iOS开发:Swift多线程GCD的使用
除了上一篇文章说到到NSThread线程,还有一个GCD(Grand Central Dispath),是Apple新开发的一个解决多核编程的解决方案,充分的利用CPU资源,将所有的任务,放到一个任务 ...