页面中的元素数量

时间:2011-01-07 00:11:20

标签: javascript html prototypejs

当我在玩Prototypejs javascript库时,我发现了

$$("*").length< document.getElementsByTagName("*").length

我想知道为什么prototypejs总是给出较低的数字。


修改

在Dr.Molle的回答之后,我尝试了另一个页面,我发现长度差异为3并不总是1.然后我发现

一个。以“!”开头在尖括号之后(总共报告为1)

湾<! - - >评论标签(页面中有2个评论标签)(报告为总共2个)

我不知道“!”也显示为tagName以及其他标记,例如div,span,script等。

以下代码已在IE的开发人员工具中使用

var allEles=document.getElementsByTagName("*");
$A(allEles).each(function(el){
console.log(el.tagName);
});

显示..

LOG: !

LOG: HTML

LOG: HEAD

1 个答案:

答案 0 :(得分:3)

在MSIE中看起来(我只看到它发生在那里)getElementsByTagName()也获取<!DOCTYPE>,但$$()却没有。

如果为DOCTYPE提供了getElementsByTagName('*')中第一个元素的IE报告,其中tagName 和nodeType 8

关于该nodeType,似乎DOCTYPE被视为注释节点(nodeType 8代表什么),因此主要的错误是MSIE在使用getElementsByTagName()

时获取注释