J'ai des difficultés à obtenir un sélecteur pour fonctionner correctement.
J'ai ce HTML: p> et j'essaie de sélectionner le C'est ce que j'essaie: p> CODE> Tags, qui sont des enfants de UI-ControlGroup-Controls Code> - ce qui signifie à l'exclusion de ce qui est à l'intérieur du formulaire. P> // el is my div.wrapper element
el.children[0].getElementsByTagName("div");
4 Réponses :
Un moyen de faire cela consiste à itérer sur votre liste de nœuds résultants et à vérifier le parent: Voici une démonstration de cette approche: http://jsfiddle.net/wlhy2/ p> une approche plus simple (bien que moins efficace) consiste à utiliser queryselectorall Code> Pour récupérer les nœuds pertinents à l'aide d'une expression sélecteur: p>
bonne idée. En attente d'une solution plus compliquée. Sinon, vous obtenez le signe de tête! Merci!
Dans la plupart des navigateurs, vous pouvez faire: mais cela pourrait donner de faux positifs s'il y a plus profondément imbriqué Si c'est le cas, il suffit d'itérer le
". UI-contrôl-contrôle" Code> que vous voulez éviter. p> .children code> et construisez une collection de divs imbriqués. P> var divs = [];
for (var j = 0, lenj = el.children[0].children.length; j <, lenj; j++)
if (el.children[0].children[j].nodeName === "DIV")
divs.push(el.children[o].children[j])
pour le navigateur qui prend en charge QuerySelectorall :
var nodes = el.children[0].children;
var divs = [];
for (var l = nodes.length, node; node = nodes[--l];) {
if (node.tagName === "DIV")
divs.push(node);
}
Merci pour les alternatives
<your-element>.querySelectorAll(":scope > div");
:scope is a pseudo-class representing the parent element. No support in IE, but there is a shim.