powiedzmy, że mam taki znacznik:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
i chcę wybrać #moo.
dlaczego $('#foo').find('span')
działa, ale $('span', $('#foo'));
nie działa?
powiedzmy, że mam taki znacznik:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
i chcę wybrać #moo.
dlaczego $('#foo').find('span')
działa, ale $('span', $('#foo'));
nie działa?
var ele = $("div #foo")
tego, jak możesz dostać się stąd do moo (bez korzystania z odniesień do tablic)
Odpowiedzi:
Właściwie $ ('# id', this); wybierze #id na dowolnym poziomie potomnym, a nie tylko bezpośrednim dzieckiem. Spróbuj tego zamiast tego:
$(this).children('#id');
lub
$("#foo > #moo")
lub
$("#foo > span")
moo
, a nie klasę.
.children()
i .find()
są podobne, z wyjątkiem tego, że ten pierwszy podróżuje tylko o jeden poziom w dół w poddrzewie DOM.
Możesz użyć find
opcji, aby wybrać element wewnątrz innego. Na przykład, aby znaleźć element o identyfikatorze txtName w określonym elemencie div, możesz użyć like
var name = $('#div1').find('#txtName').val();
.... ale $ ('span', $ ('# foo')); nie działa?
Ta metoda jest nazywana dostarczaniem kontekstu selektora .
W tym celu podajesz drugi argument do selektora jQuery . Może to być dowolny ciąg obiektu css, tak jak w przypadku bezpośredniego wybierania lub element jQuery.
na przykład.
$("span",".cont1").css("background", '#F00');
Powyższa linia wybierze wszystkie zakresy w kontenerze o nazwie klasy cont1
.
oba wydają się działać.
patrz skrzypce: http://jsfiddle.net/maniator/PSxkS/
$('#moo')
? ;) Przy okazji. to działa: jsfiddle.net/fkling/k5X2r