Nehmen wir an, ich habe ein solches Markup:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
und ich möchte #moo auswählen.
warum $('#foo').find('span')
funktioniert, aber $('span', $('#foo'));
nicht?
Nehmen wir an, ich habe ein solches Markup:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
und ich möchte #moo auswählen.
warum $('#foo').find('span')
funktioniert, aber $('span', $('#foo'));
nicht?
$('#moo')
? ;) Übrigens. es funktioniert: jsfiddle.net/fkling/k5X2rvar ele = $("div #foo")
Antworten:
Sie können jede dieser verwenden [ab der schnellsten]
Schau mal
quelle
Eigentlich $ ('# id', this); würde #id auf jeder Nachkommenebene auswählen, nicht nur das unmittelbare Kind. Versuchen Sie stattdessen Folgendes:
oder
oder
quelle
moo
und nicht die Klasse hat..children()
und.find()
ähnlich sind, außer dass der erstere nur eine Ebene den DOM-Unterbaum hinunter fährt.Warum nicht einfach verwenden:
oder
$('span', $('#foo'));
funktioniert gut auf meiner Maschine;)quelle
$($(elementA), 'tr#' + key + ' span')
arbeitet nicht für mich (jQuery 1.10.2)Mit der
find
Option können Sie ein Element in einem anderen auswählen. Um beispielsweise ein Element mit der ID txtName in einem bestimmten div zu finden, können Sie like verwendenquelle
Schauen Sie hier - um ein Unterelement eines Elements abzufragen :
$(document.getElementById('parentid')).find('div#' + divID + ' span.child');
quelle
Diese Methode wird als Bereitstellung genannt Selektor Kontext .
Hier geben Sie ein zweites Argument für den jQuery-Selektor an . Es kann sich um eine beliebige CSS-Objektzeichenfolge handeln, wie Sie sie für die direkte Auswahl oder ein jQuery-Element übergeben würden.
z.B.
In der obigen Zeile werden alle Bereiche innerhalb des Containers mit der benannten Klasse ausgewählt
cont1
.DEMO
quelle
beide scheinen zu funktionieren.
siehe Geige: http://jsfiddle.net/maniator/PSxkS/
quelle