使用Jquery获取元素标记名称和长度

You*_*uss 4 each jquery tagname

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

$('body *').each(function(){
var string = this.tagName;
Run Code Online (Sandbox Code Playgroud)

但是长度没有赶上:

var count =  $(this).length;
Run Code Online (Sandbox Code Playgroud)

它给了我,1虽然有两个div,例如:JsFiddle

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

FBH*_*BHY 7

试试吧:

var count =  $(string, 'body').length;
Run Code Online (Sandbox Code Playgroud)


mea*_*gar 5

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

您应该枚举要计数的标签,并迭代它们:

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

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

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

div appears 141 times
li appears 66 times
a appears 179 times 
Run Code Online (Sandbox Code Playgroud)