javascript代码实例教程-js便签笔记(1)――说说HTMLCollection、NodeList以及NamedNodeMap

发布时间:2019-02-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-js便签笔记(1)――说说HTMLCollection、NodeList以及NamedNodeMap脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 介绍

在js的dom操作中,除了常用的document、htML**Element之外,还有三个集合对象,即@L_406_0@Collection、nodelist以及NamedNodeMap。试看以下操作:

 

复制代码

 1 VAR ps = document.getelementsbytagname("p");

 2 alert(ps instanceof HTMLCollection);        //true  (chrome中返回false,ps是NodeList对象)

 3 

 4 var p = document.getElementById("p1");

 5 

 6 var children = p.childNodes;         //获取p元素子节点集合

 7 alert(children instanceof NodeList);   //true

 8 

 9 var attrs = p.attributes;            //获取p元素的特性

10 alert(children instanceof NamedNodeMap);  //true

复制代码

以上代码中,chrome下的document.getElementsByTagName("p")将返回NodeList对象。

 

这三个对象都是“类数组”,可以获取他们的length,也可以通过 attrs[0] 获取数据,有点类似与函数里面的arguments。

 

NamedNodeMap和Attr

p.attrbutes将返回一个NamedNodeMap对象,即NamedNodeMap存储是的p的“特性Attribute”集合。而集合中的每一个元素,都是Attr类型的对象。Attr对象有三个属性,name、value和sPEcified。

 

但是在日常应用中,一般会应用getAttribute()、setattribute()和romoveAttribute()来操作特性,不需要直接访问特性对象。

 

另外,dom元素的“特性”(Attribute)和“属性”(PRoperty)是不一样的,两者要分清楚,我会在以后的文章中专门讲解

 

所谓“动态”

HTMLCollection、NodeList以及NamedNodeMap这三个集合都是“动态的”,每当文档发生变化时,他们都会更新。他们将始终保持这最新、最准确的消息。且看以下程序:

 

复制代码

           var ps = document.getElementsByTagName("p"),

                i,

                p;

            for (i = 0; i < ps.length; i++) {

                p = document.createElement("p");

                document.body.appendChild(p);

            }

复制代码

以上代码是个死循环!

 

为何?就因为ps是通过getElementsByTagName()获取的htmlCollection集合,它是“动态”的。每次执行document.body.appendChild(p)时候,ps.length都会增加。

 

总结

1. 要了解 HTMLCollection、NodeList以及NamedNodeMap 三种集合类型;

 

2. 他们都是“类数组”;

 

3. 知道他们的“动态性”,这个很重要

 

4. 特性和属性不同,后续会专门讲解。

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-js便签笔记(1)――说说HTMLCollection、NodeList以及NamedNodeMap全部内容,希望文章能够帮你解决javascript代码实例教程-js便签笔记(1)――说说HTMLCollection、NodeList以及NamedNodeMap所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。