Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面中的元素数_Javascript_Html_Prototypejs - Fatal编程技术网

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等)一起也

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

$$(“*”).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尝试另一个,返回不同的长度。