Eu tenho um layout semelhante a este:
<div id="..."><img src="..."></div>
e gostaria de usar um seletor jQuery para selecionar o filho img
dentro do div
clique.
Para obter o div
, eu tenho esse seletor:
$(this)
Como posso obter a criança img
usando um seletor?
Você também pode usar
que retornaria todos os
img
s que são descendentes dodiv
fonte
$(this).children('img')
seria melhor. por exemplo,<div><img src="..." /><div><img src="..." /></div></div>
porque presumivelmente o usuário deseja encontrar imagens de primeiro nível.Se você precisar obter o primeiro nível
img
que está abaixo de um nível, pode fazerfonte
:first
apenas " exatamente a um nível " ou corresponde ao "primeiro"img
encontrado?.children()
é de onde vem o "descer exatamente um nível" e:first
é de onde veio o "primeiro"..find()
vez de.children()
this
já era uma referência ao que<div>
contém o arquivo<img>
, no entanto, se você tiver vários níveis de tag para percorrer a partir da referência que você tinha, definitivamente poderá compor mais de umachildren()
chamadaSe sua tag DIV for imediatamente seguida pela tag IMG, você também poderá usar:
fonte
As crianças diretas são
fonte
Você pode encontrar todo o elemento img da div pai como abaixo
Se você quiser um elemento img específico, pode escrever assim
Sua div contém apenas um elemento img. Então, para isso abaixo está certo
Mas se sua div contiver mais elementos img como abaixo
não é possível usar o código superior para encontrar o valor alt do segundo elemento img. Então você pode tentar isso:
Este exemplo mostra uma ideia geral de como você pode encontrar um objeto real no objeto pai. Você pode usar classes para diferenciar seu objeto filho. Isso é fácil e divertido. ie
Você pode fazer isso como abaixo:
e mais específico como:
Você pode usar find ou filhos como o código acima. Para mais informações, visite Children http://api.jquery.com/children/ e localize http://api.jquery.com/find/ . Veja o exemplo http://jsfiddle.net/lalitjs/Nx8a6/
fonte
Maneiras de se referir a uma criança no jQuery. Resumi-o no seguinte jQuery:
fonte
Sem saber o ID do DIV, acho que você poderia selecionar o IMG assim:
fonte
Tente este código:
fonte
$($(this).children()[0])
.$(this:first-child)
$($(this).children()[x])
usar$(this).eq(x)
ou se você quiser o primeiro, apenas$(this).first()
.Você pode usar um dos seguintes métodos:
1 encontrar ():
2 crianças():
fonte
O jQuery's
each
é uma opção:fonte
Você pode usar o Child Selecor para fazer referência aos elementos filho disponíveis no pai.
E o seguinte é se você não tem referência
$(this)
e deseja fazer referênciaimg
disponível dentro de umadiv
de outra função.fonte
Também isso deve funcionar:
fonte
this
Aqui está um código funcional, você pode executá-lo (é uma demonstração simples).
Quando você clica no DIV, obtém a imagem de alguns métodos diferentes, nesta situação "this" é o DIV.
Espero que ajude!
fonte
Você pode ter de 0 a muitas
<img>
tags dentro do seu<div>
.Para encontrar um elemento, use a
.find()
.Para manter seu código seguro, use a
.each()
.O uso
.find()
e o.each()
conjunto evitam erros de referência nulos no caso de 0<img>
elementos, além de permitir o manuseio de vários<img>
elementos.fonte
$("body").off("click", "#mydiv").on("click", "#mydiv", function() {
event.stopImmediatePropagation()
o elemento para impedir que isso acontecesse.fonte
Você poderia usar
fonte
Se seu img é exatamente o primeiro elemento dentro de div, tente
Mostrar snippet de código
fonte