FirefoxやJavaScriptは、DOMを数えます
-
19-09-2019 - |
質問
私は、これは単純です確信しているが、私はそれを行うにはどのようには考えています。 どのように私は私のHTMLページでDOM要素の量をカウントしていますか?私はuserscriptやブックマークレットでこれをやってみたかったが、私は起動する方法が分からない!
解決
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
を呼び出すことです。
他のヒント
それが重要な場合は、
//あなたは、各タグのカウントを取得するために、同じ方法を使用することができます。
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(', ');
}
の警告(tagcensus())の
JavaScriptでは、あなたが行うことができます。
document.getElementsByTagName("*").length
jQueryのではあなたが行うことができます。
jQuery('*').length
所属していません StackOverflow