当前位置: 首页 > news >正文

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中的所有表单元素。

属性或者方法数据类型说明
lengthlong只读,返回集合中的元素数量。三个接口均有此属性
item()object1、根据索引获取集合中的元素。在HTMLCollection中定义

2、在HTMLCollection中有如下等价:
       document.forms(0)<=>document.forms[0]<=>document.forms.item(0)

tags()HTMLAllCollection根据标签名获取元素。在HTMLAllCollection中定义
namedItem()object根据name或者id属性获取集合中的元素,区别如下:

1、在HTMLCollection中,先根据name查找,在根据id查找,但是只返回第一个符合的元素。若不存在符合的元素则返回null。存在如下等价:
document.forms['formname']<=>document.forms(‘formname’)<=>document.forms.namedItem(‘formname’)

2、在HTMLAllCollection中,若有多个符合的元素,则返回一个HTMLCollection对象;若只有一个符合元素,则返回该元素。

3、在HTMLFormControlsCollection中,若有多个符合的元素,则返回一个RadioNodeList对象;若只有一个符合元素,则返回该元素。

 

二、HTMLOptionsCollection接口

     该接口返回一组元素组成的列表,与HTMLCollection不同的是,它特定于返回的是一组option元素责成的列表,并且重写了length属性 和namedItem()方法。HTMLSelectElement.options属性返回的数据类型就是 HTMLOptionsCollection。

属性或方法名数据类型说明
lengthlong可读写。若属性值大于实际的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。

属性或方法数据类型说明
lengthlong集合中标识的数量
valueDOMString获取或设置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小结

转载于:https://www.cnblogs.com/ido321/p/4156729.html

相关文章:

  • webpack Cannot find module 'webpack/schemas/WebpackOptions.json'
  • VMware vCenter Converter 组件
  • 鱼鹰软件签约中影集团电影数字制作基地
  • Java对日期Date类进行加减运算,年份加减,月份加减
  • 一时冲动,草率从事,就会身遭不幸。
  • 单例模式设计
  • 如何把python最小化安装在客户机上面
  • WPF实现物理效果 拉一个小球
  • Extjs的textfield的颜色设置和出现的问题笔记
  • nginx快速安装
  • 身份证号 js验证 validform
  • Alamofire动态Proxy,报出FAILURE: Error Domain=NSURLErrorDomain Code=-999 cancelled
  • NSPredicate
  • 从tcpdump抓包看TCP/IP协议
  • Linux Redhat 6.5 安装NFS服务
  • Android单元测试 - 几个重要问题
  • Angular Elements 及其运作原理
  • cookie和session
  • JS笔记四:作用域、变量(函数)提升
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Vue ES6 Jade Scss Webpack Gulp
  • Vue2.x学习三:事件处理生命周期钩子
  • 从PHP迁移至Golang - 基础篇
  • 记一次和乔布斯合作最难忘的经历
  • 前言-如何学习区块链
  • 我是如何设计 Upload 上传组件的
  • 正则表达式小结
  • 如何用纯 CSS 创作一个货车 loader
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • ${factoryList }后面有空格不影响
  • (9)目标检测_SSD的原理
  • (一)为什么要选择C++
  • (转)http-server应用
  • (转)Linux下编译安装log4cxx
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET Micro Framework初体验(二)
  • .net 发送邮件
  • .NET6 命令行启动及发布单个Exe文件
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @取消转义
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
  • [C/C++]数据结构 堆的详解
  • [C++打怪升级]--学习总目录
  • [CakePHP] 在Controller中使用Helper
  • [delphi]保证程序只运行一个实例
  • [Design Pattern] 工厂方法模式
  • [Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件
  • [HarekazeCTF2019]encode_and_encode 不会编程的崽
  • [HJ73 计算日期到天数转换]
  • [JavaWeb]—Spring入门
  • [LeetCode]剑指 Offer 40. 最小的k个数