Javascript 页面中的元素数
当我在玩Prototypejs javascript库时,我发现Javascript 页面中的元素数,javascript,html,prototypejs,Javascript,Html,Prototypejs,当我在玩Prototypejs javascript库时,我发现 $$(“*”).lengthdocument.getElementsByTagName(“*”).length 我想知道为什么prototypejs总是给出较低的数字 编辑 在Molle博士的回答之后,我在另一页上尝试了一下,我发现长度差是3,并不总是1。然后我发现 a。在角括号后以“!”开头(总共报告为1) b。评论标签(页面中有2个评论标签)(共报告2个) 我想知道“!”与其他标记(如div、span、script等)一起也
$$(“*”).length
document.getElementsByTagName(“*”).length
我想知道为什么prototypejs总是给出较低的数字
编辑 在Molle博士的回答之后,我在另一页上尝试了一下,我发现长度差是3,并不总是1。然后我发现 a。在角括号后以“!”开头(总共报告为1) b。评论标签(页面中有2个评论标签)(共报告2个) 我想知道“!”与其他标记(如div、span、script等)一起也显示为标记名 以下代码已在IE的开发工具中使用
var allEles=document.getElementsByTagName("*");
$A(allEles).each(function(el){
console.log(el.tagName);
});
显示
LOG: !
LOG: HTML
LOG: HEAD
看起来在MSIE中(我只看到它发生在那里)getElementsByTagName()也会获取
,但是$$()不会
如果为getElementsByTagName('*')
a标记名中的第一个元素提供了DOCTYPE报告和节点类型8
关于该节点类型,DOCTYPE似乎被视为注释节点(节点类型8代表的是什么),因此主要的错误是MSIE在使用
getElementsByTagName()
时获取注释。也许可以浏览一下内容?这并不总是发生(运行document.getElementsByTagName(“*”)。length=$$(“*”)。length
on)。您应该向我们显示发生此情况的页面。从这里开始尝试此操作,$$(“”)。长度返回61,而document.getElementsByTagName(“”)。长度返回62尝试另一个,返回不同的长度。