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?
var ele = $("div #foo")
comment pouvez-vous arriver à moo à partir d'ici (sans utiliser de références de tableau)
Réponses:
En fait, $ ('# id', this); sélectionnerait #id à n'importe quel niveau descendant, pas seulement l'enfant immédiat. Essayez plutôt ceci:
$(this).children('#id');
ou
$("#foo > #moo")
ou
$("#foo > span")
moo
, pas la classe.
.children()
et .find()
sont similaires sauf que le premier ne parcourt qu'un seul niveau dans le sous-arbre DOM.
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 comme
var name = $('#div1').find('#txtName').val();
.... mais $ ('span', $ ('# foo')); ne fonctionne pas?
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.
$("span",".cont1").css("background", '#F00');
La ligne ci-dessus sélectionnera toutes les étendues dans le conteneur ayant la classe nommée cont1
.
les deux semblent fonctionner.
voir violon: http://jsfiddle.net/maniator/PSxkS/
$('#moo')
? ;) Btw. ça marche: jsfiddle.net/fkling/k5X2r