Une question rapide .. quelle est la déclaration JAVASCRIPT pour obtenir les enfants immédiats d'une liste? J'ai essayé:enfants immédiats d'une liste
document.getElementById(id).getElementsByTagName('li');
qui me donne tous les nœuds enfants.
Une question rapide .. quelle est la déclaration JAVASCRIPT pour obtenir les enfants immédiats d'une liste? J'ai essayé:enfants immédiats d'une liste
document.getElementById(id).getElementsByTagName('li');
qui me donne tous les nœuds enfants.
par:
document.getElementById(id).children
et obtenir ceux qui sont des éléments li (je pense qu'ils devraient tous être selon les spécifications)
Je pense que document.querySelectorAll('#id>li')
s'il est pris en charge devrait fonctionner aussi bien. Voir: http://www.w3.org/TR/selectors-api/
Node.childNodes
ou Element.children
var listItems = [];
var children = elem.childNodes;
for(var i = 0; i < children.length; i++) {
if(children[i].nodeName == "LI") {
listItems.push(children[i]);
}
}
Notez que 'childNodes' contient tous les nœuds et seulement les éléments. – Gumbo
merci @Gumbo - Je vais clarifier ce point dans la réponse plus tard. Cela ne devrait pas avoir d'importance pour les petites listes car nous testons 'nodeName', mais peut être inefficace pour les listes plus grandes. – Anurag
Mieux vaut 'children [i] .nodeType === Node.ELEMENT_NODE' pour être sur que c'est vraiment un noeud d'élément. – Gumbo
Le même code plus rapide & mieux.
var listItems = [];
var children = element.childNodes;
for(var i = 0, l=children.length; i<l; ++i) {
var child = children[i];
if(child.nodeType === 1 && child.tagName === "LI") {
listItems.push(child);
}
}
Hmm, on dirait que les enfants ne font pas partie d'une norme DOM, juste une partie de gecko et peut-être d'autres moteurs de rendu ... childNodes est probablement la meilleure réponse même si vous devez vérifier chaque élément de la liste. –
est donc document.getElementById (id) .childNodes; cela m'obtiendrait seulement les enfants immédiats? – racky
oui, notez que si vous avez installé firebug, vous pouvez voir ces deux listes dans la fenêtre de surveillance directement sur ce site avec une montre comme 'document.getElementsByTagName (" ul ") [0]' –