NodeList对象是DOM操作取出的集合(实际上是基于DOM结构动态查询的结果),用来保存一组有序的节点,可以通过位置来访问这些节点,它并不是array的实例。Nodelist最大的特点就是它的时效性,DOM结构的变化能自动反映在Node List对象中。也就是说当DOM结构发生变化时,NodeList立刻会发生变化。NodeList对象转为数组方法: Array.prototype.slice.call(someNode.childNodes, 0) 或 [].slice(someNode.childNodes, 0)由于IE8及更早...
因此,他们始终存着最新,最准确的信息。从本质上说,所有NodeList对象都是访问DOM文档时实时运行的查询。例如下列代码会导致无限的循环:代码如下:<script type="text/javascript"> window.onload=function(){ var divObj=document.getElementsByTagName(div); for(var i=0;i<divObj.length;i++){ var d=document.createElement("div"); document.body.appendChild(d); } }</script> 首先取得页面...
比如: 代码如下: var anchors = document.getElementsByTagName("a"); for (i = 0; i < anchors.length; i++) { var ele=anchors[i];//取某一个元素 //some code here } 上面的代码表示获取文档中的所有链接元素,然后遍历做一些事情。 也许你会问,通过这种方法获取的这一组dom元素不就是一个数组吗?你看,你都可以直接获取它的length属性,还可以根据索引取到对应的单独元素,根据大牛的著名鸭子理论,它像鸭子一样行走(有l...
在您开始本文的阅读前,我强烈建议您可以先读一读此篇:http://w3help.org/zh-cn/causes/SD9004.HTMLCollection 接口定义 interface HTMLCollection{ readonly attribute unsigned long length; Node item(in unsigned long index); Node namedItem(in DOMString name);}对于 HTMLCollection集合对象 必须要说一说的是 namedItem方法. 看看规范的解释.原文:namedItem methodThis metho...
这里把符合以下条件的对象称为伪数组 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等方法 如 1,function内的arguments 。 2,通过document.forms,Form.elements,Select.options,document.getElementsByName() ,document.getElementsByTagName() ,childNodes/children 等方式获取的集合(HTMLCollection,NodeList)等。 3,特殊写法的对象 ,如 代码如下: var obj={}; obj[0] = "一"; obj[1] = "二"; ...
这里把符合以下条件的对象称为伪数组 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等方法 如 1,function内的arguments 。 2,通过document.forms,Form.elements,Select.options,document.getElementsByName() ,document.getElementsByTagName() ,childNodes/children 等方式获取的集合(HTMLCollection,NodeList)等。 3,特殊写法的对象 ,如 代码如下: var obj={}; obj[0] = "一"; obj[1] = "二"; ...
因此,他们始终存着最新,最准确的信息。从本质上说,所有NodeList对象都是访问DOM文档时实时运行的查询。例如下列代码会导致无限的循环:代码如下: window.onload=function(){ var divObj=document.getElementsByTagName('div'); for(var i=0;i var d=document.createElement("div"); document.body.appendChild(d); } } 首先取得页面中的所有div,由于这个集合(divObj)是“动态的”,因此只要有...
本文实例讲述了原生JS实现循环Nodelist Dom列表的4种方式。分享给大家供大家参考,具体如下:
function $(id) {return document.getElementById(id);
}
var _PAGE = {timeListDom: $(timeList)
};
var spanDoms = _PAGE.timeListDom.querySelectorAll(span), domLen = spanDoms.length;
// 第一种方式:原生for循环
for (var i = 0; i < domLen; i++) {var v = spanDoms[i];// do something you want deal with DOM
}
// 第二种方式...
这里把符合以下条件的对象称为伪数组 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等方法 如 1,function内的arguments 。 2,通过document.forms,Form.elements,Select.options,document.getElementsByName() ,document.getElementsByTagName() ,childNodes/children 等方式获取的集合(HTMLCollection,NodeList)等。 3,特殊写法的对象 ,如 代码如下:var obj={}; obj[0] = "一"; obj[1] = "二"; o...
在您开始本文的阅读前,我强烈建议您可以先读一读此篇:http://w3help.org/zh-cn/causes/SD9004.
HTMLCollection 接口定义
interface HTMLCollection{ readonly attribute unsigned long length; Node item(in unsigned long index); Node namedItem(in DOMString name);}
对于 HTMLCollection集合对象 必须要说一说的是 namedItem方法. 看看规范的解释.原文:namedItem...
比如: 代码如下:var anchors = document.getElementsByTagName("a"); for (i = 0; i < anchors.length; i++) { var ele=anchors[i];//取某一个元素 //some code here } 上面的代码表示获取文档中的所有链接元素,然后遍历做一些事情。 也许你会问,通过这种方法获取的这一组dom元素不就是一个数组吗?你看,你都可以直接获取它的length属性,还可以根据索引取到对应的单独元素,根据大牛的著名鸭子理论,它像鸭子一样行走(有le...
最近,我遇到了一个事实,即元素的childNodes属性返回NodeList而不是Array.现在,我了解到NodeList应该是元素的实时集合,但是我不明白为什么它会阻止它具有indexOf甚至push之类的方法.
谁能解释为什么对NodeList唯一可以做的就是索引它?解决方法:因为那是指定的方式. DOM API是与JavaScript分开设计的.实际上,NodeList与JavaScript数组(长度和索引)具有一些共同的方面……事实,这实际上可能不是巧合,而是设计过程中输入的副产品.请记...
我想检查NodeList中的任何元素是否具有特定的类.
例如,使用jQuery我只需执行以下操作://if any .item element has active class, return true
var isActive = $(".item").hasClass("active"); 只有我可以使用Javascript,但代码稍长:var isActive = false;
var items = Array.from(document.getElementsByClassName("item"));items.forEach(function(item, index) {if(item.className.indexOf('active') > 0) {isActive = true;}
...
我不确定我目前的实施是否始终可用:function isNodeList(nodes) {var result = Object.prototype.toString.call(nodes);// modern browser such as IE9 / firefox / chrome etc.if (result === '[object HTMLCollection]' || result === '[object NodeList]') {return true;}//ie 6/7/8if (typeof(nodes) != 'object') {return false;}// detect length and item if (!('length' in nodes) || !('item' in nodes)) {return false;...
length属性的属性描述符对象显示可配置:true,writable:true和enymerable:true但它的行为类似于只读.
我知道readonly功能只能由PDO(属性描述符对象)实现.
有人能给出任何线索吗?这是怎么回事?var nodeList = document.getElementsByName('demo');nodeList.length; //3
nodeList.length = 6;
nodeList.length; //3Object.getOwnPropertyDescriptor(nodeList,'length')
Object
configurable: true
enumerable: true
value: 3
wri...