23

我确定这很简单,但我不知道该怎么做。如何计算 HTML 页面中 DOM 元素的数量?我想在用户脚本或书签中执行此操作,但我不知道如何开始!

4

3 回答 3

60

将此用于Element节点:

document.getElementsByTagName("*").length

对于任何节点,您都可以Node像这样扩展:

Node.prototype.countChildNodes = function() {
  return this.hasChildNodes()
    ? Array.prototype.slice.apply(this.childNodes).map(function(el) {
        return 1 + el.countChildNodes();
      }).reduce(function(previousValue, currentValue, index, array){
        return previousValue + currentValue;
      })
    : 0;
};

那么你需要做的就是打电话document.countChildNodes

于 2010-02-10T12:39:15.960 回答
3

// 如果重要,您可以使用相同的方法来获取每个标签的计数

  function tagcensus(pa){
    pa= pa || document;
    var O= {},
    A= [], tag, D= pa.getElementsByTagName('*');
    D= A.slice.apply(D, [0, D.length]);
    while(D.length){
        tag= D.shift().tagName.toLowerCase();
        if(!O[tag]) O[tag]= 0;
        O[tag]+= 1;
    }
    for(var p in O){
        A[A.length]= p+': '+O[p];
    }
    A.sort(function(a, b){
        a= a.split(':')[1]*1;
        b= b.split(':')[1]*1;
        return b-a;
    });
    return A.join(', ');
}

警报(标签普查())

于 2010-02-10T16:24:39.733 回答
2

在 JavaScript 中你可以做

document.getElementsByTagName("*").length

在 jQuery 中你可以做

jQuery('*').length
于 2014-02-04T13:59:29.427 回答