2009-05-07 25 views
45

Necesito encontrar un img por nombre y src. He estado intentando lo siguiente en vano.jQuery: Cómo encontrar una imagen por su src

var s = $("img[src='/images/greendot.gif'][name='BS']"); 

El html:

<img alt="This item is active." name="BS" src="/images/greendot.gif"/> 

vs

<img alt="This item is not active." name="BS" src="/images/spacer.gif"/> 
+0

por su nombre y origen, estás tratando de encontrar varias imágenes? – TStamper

+0

¿puedes publicar un ejemplo del html? – Jared

+0

sí, yo soy. La s var será una matriz cuya longitud verificaré. – kjgilla

Respuesta

76

sin ver el código HTML que diría comprobar su camino.

$("img[src$='greendot.gif'][name='BS']") 

Dado el siguiente código HTML:

<img src="http://assets0.twitter.com/images/twitter_logo_header.png" name="logo" /> 

este jQuery trabajó:

var x = $("img[src$='twitter_logo_header.png'][name='logo']"); 
alert(x.attr("src")); 
+5

No hay necesidad de $ cuando tenemos la ruta completa. – karim79

6

Trate de perder las comillas:

var s = $("img[src=../../images/greendot.gif][name=BS]"); 
+0

Eso no ayudó. – kjgilla

+0

Pruebe con la ruta que ha mostrado en el HTML, es decir ../../images/greendot.gif. He editado la respuesta. – karim79

+0

Hubo una confusión allí. Originalmente tenía ../../images/greendot.gif y todavía no estaba funcionando. Luego cambié a/images en las imágenes dinámicamente agregadas (js agregadas) pero las que descienden desde .net aún están en ... /. En cualquier caso, algo sobre el '/' en la búsqueda attr estaba arruinando las cosas. – kjgilla

4

navegadores añaden ruta completa src, href y atributos similares. Por lo tanto, aunque el elemento se define con una ruta relativa, en DOM 'src' el atributo contiene el nombre de dominio y la ruta completa. El uso de la sintaxis [src $ = "..."] o la especificación del nombre de dominio completo parecen ser solo opciones para encontrar imágenes por src con jQuery.


Podría estar equivocado aquí. La propiedad src del objeto imagen informa la ruta completa, pero el atributo debe contener la ruta tal como se especifica en el código. [src = "relative/path"] funciona en la última versión de jQuery, tal vez era una versión anterior en la que no funcionaba.

0

Cambiar la etiqueta img así:

<img src="path/to/imgage/img.jpg" title="img.jpg" /> 

me refiero a añadir a su atributo de imágenes título y las puso nombre de archivo.

Cuando necesite acceder a la imagen sertain puede hacerlo de la siguiente manera:

//Finding image that you need using 'title' attribute; 
var imageTag = $("img[title='imageName']"); 

//Then if you need to do something with it; 
imageTag.attr('src', 'path/to/newImage/newImage.jgp'); 
imageTag.attr('title', 'newImage.jpg'); 
+0

¿Por qué la gente de votar abajo, no es una manera elegante de despellejar a este gato, pero oye! esa es una gente gato sin piel. – qualebs

Cuestiones relacionadas