diciamo che ho un markup come questo:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
e voglio selezionare #moo.
perché $('#foo').find('span')
funziona, ma $('span', $('#foo'));
non lo fa?
diciamo che ho un markup come questo:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
e voglio selezionare #moo.
perché $('#foo').find('span')
funziona, ma $('span', $('#foo'));
non lo fa?
var ele = $("div #foo")
come puoi arrivare a moo da qui (senza usare riferimenti ad array)
Risposte:
In realtà, $ ('# id', this); selezionerebbe #id a qualsiasi livello discendente, non solo al figlio immediato. Prova questo invece:
$(this).children('#id');
o
$("#foo > #moo")
o
$("#foo > span")
moo
, non la classe.
.children()
e .find()
sono simili tranne per il fatto che il primo viaggia solo un livello più in basso nel sottoalbero DOM.
Perché non usare semplicemente:
$("#foo span")
o
$("#foo > span")
$('span', $('#foo'));
funziona bene sulla mia macchina;)
$($(elementA), 'tr#' + key + ' span')
non funziona per me (jQuery 1.10.2)
È possibile utilizzare l' find
opzione per selezionare un elemento all'interno di un altro. Ad esempio, per trovare un elemento con id txtName in un particolare div, puoi usare like
var name = $('#div1').find('#txtName').val();
.... ma $ ('span', $ ('# foo')); non funziona?
Questo metodo viene chiamato per fornire il contesto del selettore .
In questo fornisci un secondo argomento al selettore jQuery . Può essere qualsiasi stringa di oggetto CSS, proprio come si passerebbe per la selezione diretta o un elemento jQuery.
per esempio.
$("span",".cont1").css("background", '#F00');
La riga sopra selezionerà tutti gli intervalli all'interno del contenitore con la classe denominata cont1
.
entrambi sembrano funzionare.
vedi violino: http://jsfiddle.net/maniator/PSxkS/
$('#moo')
? ;) Btw. funziona: jsfiddle.net/fkling/k5X2r