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.