2009-05-07 5 views
45

J'ai besoin de trouver un img par nom et src. J'ai essayé ce qui suit en vain.jQuery: Comment trouver une image par son src

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

Le 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

Par nom et de la source, vous essayez de trouver plusieurs images? – TStamper

+0

pouvez-vous poster un exemple du code HTML? – Jared

+0

oui je suis. Le s var sera un tableau dont je vérifierai la longueur. – kjgilla

Répondre

76

sans voir le code html je vous conseille de consulter votre chemin.

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

donné le code HTML suivant:

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

cette jquery a fonctionné:

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

Il n'y a pas besoin d'un $ quand nous avons le chemin complet. – karim79

6

Essayez de perdre les citations:

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

Cela n'a pas aidé. – kjgilla

+0

Essayez le chemin que vous avez indiqué dans le code HTML, à savoir ../../images/greendot.gif. J'ai édité la réponse. – karim79

+0

Il y avait un mélange ici. J'ai d'abord eu ../../images/greendot.gif et ça ne fonctionnait toujours pas. J'ai ensuite basculé sur/images sur les images ajouter dynamiquement (js ajouté), mais ceux qui descendent de .net où encore ../. En tout cas, quelque chose à propos du '/' dans la recherche d'attrisait des choses. – kjgilla

4

Browsers ajouter le chemin complet src, href et attributs similaires. Ainsi, même si l'élément est défini avec un chemin relatif, l'attribut DOM 'src' contient le nom de domaine et le chemin complet. L'utilisation de la syntaxe [src $ = "..."] ou la spécification d'un nom de domaine complet semble être seulement des options pour trouver des images par src avec jQuery.


Je peux me tromper ici. La propriété src de l'objet image renvoie le chemin d'accès complet, mais l'attribut doit contenir le chemin spécifié dans le code. [src = "relative/path"] fonctionne dans la dernière version de jQuery, peut-être était-ce une version antérieure où cela ne fonctionnait pas.

0

Modifier votre balise img comme ceci:

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

Je veux dire ajouter à votre attribut title images et les fixer le nom du fichier.

Lorsque vous avez besoin d'accéder à l'image de sertain vous pouvez le faire comme ci-dessous:

//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

Pourquoi les gens de vote en bas, ce n'est pas une façon élégante de peau ce chat mais bon! c'est un chat sans peau. – qualebs

Questions connexes