digamos que eu tenha uma marcação como esta:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
e quero selecionar #moo.
porque $('#foo').find('span')
funciona, mas $('span', $('#foo'));
não funciona?
digamos que eu tenha uma marcação como esta:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
e quero selecionar #moo.
porque $('#foo').find('span')
funciona, mas $('span', $('#foo'));
não funciona?
$('#moo')
? ;) Btw. funciona: jsfiddle.net/fkling/k5X2rvar ele = $("div #foo")
como você pode obter o moo a partir daqui (sem usar referências de array)Respostas:
Você pode usar qualquer um destes [começando pelo mais rápido]
Dê uma olhada
fonte
Na verdade, $ ('# id', this); selecionaria #id em qualquer nível descendente, não apenas o filho imediato. Em vez disso, tente isto:
ou
ou
fonte
moo
, não a classe..children()
e.find()
são semelhantes, exceto que o primeiro viaja apenas um nível abaixo da subárvore DOM.Por que não apenas usar:
ou
$('span', $('#foo'));
funciona bem na minha máquina;)fonte
$($(elementA), 'tr#' + key + ' span')
não está funcionando para mim (jQuery 1.10.2)Você pode usar a
find
opção de selecionar um elemento dentro de outro. Por exemplo, para encontrar um elemento com id txtName em um div específico, você pode usar comofonte
Dê uma olhada aqui - para consultar um subelemento de um elemento :
$(document.getElementById('parentid')).find('div#' + divID + ' span.child');
fonte
Este método é chamado de fornecer contexto do seletor .
Nele, você fornece um segundo argumento para o seletor jQuery . Pode ser qualquer string de objeto css exatamente como você passaria para seleção direta ou um elemento jQuery.
por exemplo.
A linha acima selecionará todos os spans dentro do container que possui a classe nomeada
cont1
.DEMO
fonte
ambos parecem estar funcionando.
veja violino: http://jsfiddle.net/maniator/PSxkS/
fonte