2010-02-02 16 views
15

tengo varios divs que se ven así:Recuperar img src niño (jQuery)

<div><a href="our_work.html?clientid=39"> 
<img src="filestore/data_logos/39.gif" alt="client logo"/> 
</a></div> 

Estoy tratando de obtener la imagen src si hace clic en la capa div:

$('#carousel div').click(function(event) { 
    alert($(this).children('img').attr('src')); 
}); 

El la alerta siempre regresa como nula, ¿alguna idea?

Respuesta

25

Utilice esta:

$('#carousel div').click(function(event) { 
    alert($(this).find('img').attr('src')); 
}); 

Las imágenes no son hijos de la div ... son hijos de la <a> que es un hijo de la div, necesitan ir un nivel más abajo.

+5

+1 - '.children()' devolverá solo ** descendientes directos ** donde '.find()' buscará a través de todos los elementos debajo; hijos, nietos, etc. – gnarf

2

Prueba esto:

$('#carousel div').click(function(event) { 
    alert($('img', this).attr('src')); 
}); 

~ Matt

3

Straight from the horse's mouth; énfasis:

Dado un objeto jQuery que representa un conjunto de elementos DOM, los .children() método permite nosotros para buscar a través de los hijos inmediatos hijos de estos elementos en el árbol DOM ...

El IMG está anidado así: DIV > A > IMG; lo que necesita es find() no children().