disons que j'ai un balisage comme celui-ci:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
et je veux sélectionner #moo.
pourquoi $('#foo').find('span')
fonctionne, mais $('span', $('#foo'));
pas?
disons que j'ai un balisage comme celui-ci:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
et je veux sélectionner #moo.
pourquoi $('#foo').find('span')
fonctionne, mais $('span', $('#foo'));
pas?
$('#moo')
? ;) Btw. ça marche: jsfiddle.net/fkling/k5X2rvar ele = $("div #foo")
comment pouvez-vous arriver à moo à partir d'ici (sans utiliser de références de tableau)Réponses:
Vous pouvez utiliser n'importe lequel de ces [en commençant par le plus rapide]
Regarde
la source
En fait, $ ('# id', this); sélectionnerait #id à n'importe quel niveau descendant, pas seulement l'enfant immédiat. Essayez plutôt ceci:
ou
ou
la source
moo
, pas la classe..children()
et.find()
sont similaires sauf que le premier ne parcourt qu'un seul niveau dans le sous-arbre DOM.Pourquoi ne pas simplement utiliser:
ou
$('span', $('#foo'));
fonctionne bien sur ma machine;)la source
$($(elementA), 'tr#' + key + ' span')
ne fonctionne pas pour moi (jQuery 1.10.2)Vous pouvez utiliser l'
find
option pour sélectionner un élément dans un autre. Par exemple, pour trouver un élément avec l'id txtName dans un div particulier, vous pouvez utiliser commela source
Regardez ici - pour interroger un sous-élément d'un élément :
$(document.getElementById('parentid')).find('div#' + divID + ' span.child');
la source
Cette méthode est appelée comme fournissant un contexte de sélecteur .
En cela, vous fournissez un deuxième argument au sélecteur jQuery . Il peut s'agir de n'importe quelle chaîne d'objet css, comme vous le feriez pour la sélection directe ou d'un élément jQuery.
par exemple.
La ligne ci-dessus sélectionnera toutes les étendues dans le conteneur ayant la classe nommée
cont1
.DEMO
la source
les deux semblent fonctionner.
voir violon: http://jsfiddle.net/maniator/PSxkS/
la source