Je suis sûr que c'est simple mais je n'ai aucune idée de comment le faire. Comment puis-je compter le nombre d'éléments DOM dans ma page HTML? Je voulais le faire dans un userscript ou un bookmarklet mais je n'ai aucune idée de comment commencer!Firefox ou JavaScript, compte le DOM
Répondre
Utilisez ce pour Element
nœuds:
document.getElementsByTagName("*").length
Pour un nœud, vous pouvez étendre Node
comme ceci:
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;
};
Ensuite, tout ce que vous devez faire est d'appeler document.countChildNodes
.
est-il un moyen d'ajouter le nombre d'éléments à l'intérieur des iframes? – corretge
@corretge Ce serait possible si vous avez accès au 'contentDocument'. Juste itérer les éléments que vous obtenez avec 'document.getElementsByTagName (" * ")' et les compter comme 1 et pour chaque noeud d'élément 'iframe' (' tagName === 'IFRAME'') ajouter le nombre d'éléments dans son 'contentDocument 'à la place. – Gumbo
Merci beaucoup! J'ai un autre petit problème: les domaines, les protocoles et les ports doivent correspondre. Normal :) – corretge
// Vous pouvez utiliser la même méthode pour obtenir le nombre de chaque étiquette, si elle importe
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(', ');
}
alerte (tagcensus())
En JavaScript vous pouvez faire
document.getElementsByTagName("*").length
En jQuery vous pouvez faire
jQuery('*').length
- 1. Compte de mots Javascript pour n'importe quel élément DOM donné
- 2. problème DOM impair avec Firefox
- 3. HTML DOM Validator - PHP ou JavaScript
- 4. Crossbrowser Documentation JavaScript + DOM
- 5. Convertir un nœud DOM ou Document en XML en JavaScript
- 6. Comment accéder au DOM (ou au contenu HTML) de Firefox depuis l'extérieur de firefox
- 7. Utiliser le DOM Html dans le plugin firefox?
- 8. Firefox Sidebar et objet Document de DOM
- 9. Comment comparer deux DOM ou DOM en général?
- 10. En Javascript, pouvez-vous étendre le DOM?
- 11. Javascript Erreur DOM - Type d'objet non supporté
- 12. firefox et javascript
- 13. Javascript DOM et dropdowns
- 14. DOM et Javascript
- 15. arbre dom Javascript modification
- 16. DOM javascript Navigation
- 17. Ajouter dans Dom prendre plus de temps dans IE que Firefox ou tout autre navigateur
- 18. javascript pour trouver l'appelant div. (Ou tout autre objet dom)
- 19. Javascript Compte à rebours Afficher le lien
- 20. JavaScript DOM cassé
- 21. javascript DOM objet hérité
- 22. Javascript OOP requête DOM
- 23. Compte à rebours JavaScript
- 24. Doctype strict empêchant l'accès à la variable DOM dans FireFox
- 25. Objet DOM cloner widget Javascript
- 26. javascript conflit sur accesing DOM
- 27. Javascript: "Dangling" Référence à l'élément DOM?
- 28. Comment puis-je vider tout le DOM Web dans son état actuel dans Firefox?
- 29. xpath avec le document dom
- 30. javascript fonctionne dans ie, pas firefox ou chrome
Voulez-vous connaître les nœuds DOM ou les nœuds DOM qui sont des éléments HTML? Le DOM inclut des éléments tels que du texte, des commentaires et des attributs en tant que nœuds. – edeverett