2009-05-07 11 views
45

Potrzebuję znaleźć img przez nazwę i src. Próbowałem następujące bezskutecznie.jQuery: Jak znaleźć obraz przez jego src

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

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

po imieniu i źródła, starasz się znaleźć wiele obrazów? – TStamper

+0

Czy możesz przesłać przykład html? – Jared

+0

Tak, jestem. S var będzie tablicą, której długość sprawdzę. – kjgilla

Odpowiedz

76

nie widząc html powiedziałbym sprawdzić swoją ścieżkę.

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

biorąc pod uwagę następujące HTML:

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

to jQuery pracował:

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

Nie ma potrzeby użycia $, gdy mamy pełną ścieżkę. – karim79

6

Spróbuj utraty cytaty:

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

To nie pomogło. – kjgilla

+0

Spróbuj użyć ścieżki podanej w kodzie HTML, tj. ../../images/greendot.gif. Edytowałem odpowiedź. – karim79

+0

Tam było zamieszanie. Pierwotnie miałem ../../images/greendot.gif i nadal nie działało. Następnie przełączyłem się do/images na dynamicznie dodawanych obrazkach (dodano js), ale tych, które schodzą z .net, gdzie nadal ../. W każdym razie coś z "/" w wyszukiwaniu attrów podkręcało sprawę. – kjgilla

4

Przeglądarki dodać pełną ścieżkę do katalogu src, href i podobnych atrybutach. Mimo że element jest zdefiniowany za pomocą ścieżki względnej, atrybut DOM 'src' zawiera nazwę domeny i pełną ścieżkę. Używanie składni [src $ = "..."] lub określanie pełnej nazwy domeny wydaje się być tylko opcją wyszukiwania obrazów przez src z jQuery.


Może się mylę. Właściwość src obiektu obrazu generuje pełną ścieżkę, ale atrybut powinien zawierać ścieżkę określoną w kodzie. [src = "relative/path"] działa w najnowszej wersji jQuery, może była to wczesna wersja, w której nie działała.

0

Zmień swoje img tag tak:

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

Znaczy dodać do atrybutu tytuł zdjęcia i ustawić je nazwę pliku.

Kiedy trzeba przejść sertain obraz można to zrobić jak poniżej:

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

Dlaczego ludzie w dół głosują, to nie jest elegancki sposób na skórze tego kota, ale hej! to jest jeden bez skóry, bez ludzi. – qualebs