javascript - write - js get attribute from element
Firefox o JavaScript, cuente el DOM (3)
// Podría usar el mismo método para obtener el recuento de cada etiqueta, si es importante
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('', '');
}
alerta (tagcensus ())
Estoy seguro de que esto es simple, pero no tengo idea de cómo hacerlo. ¿Cómo cuento la cantidad de elementos DOM en mi página HTML? Quería hacer esto en un UserScript o bookmarklet pero no tengo idea de cómo empezar.
En JavaScript puedes hacer
document.getElementsByTagName("*").length
En jQuery puedes hacer
jQuery(''*'').length
Use esto para los nodos Element
:
document.getElementsByTagName("*").length
Para cualquier nodo, puede extender el Node
esta manera:
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;
};
Entonces todo lo que necesita hacer es llamar a document.countChildNodes
.