4

我正在尝试获取有关所有元素标签的信息以及页面中的频率,这就是我找到标签的方式,非常简单:

$('body *').each(function(){
var string = this.tagName;

但长度没有赶上:

var count =  $(this).length;

1当有两个 div 时,它给了我,例如: JsFiddle

我可以通过删除函数来解决这个问题,each但我需要它作为标记名。我必须为我的项目使用 body *,所以我不能直接引用 div。

4

2 回答 2

7

尝试一下:

var count =  $(string, 'body').length;
于 2013-12-07T14:58:26.123 回答
4

您不是用 迭代每种标签body *而是单独迭代每个标签。长度将始终为 1,因为this始终是单个 DOM 元素。

您应该枚举要计数的标签,并对其进行迭代:

var tags = ['div', 'li', 'a'];

tags.forEach(function (tag) {
  console.log(tag, "appears", $('body ' + tag).length, 'times');
});

在此页面上的 JS 控制台中运行的输出:

div appears 141 times
li appears 66 times
a appears 179 times 
于 2013-12-07T14:59:25.163 回答