2010-07-02 29 views
2

我搭售基於它們的URL選擇圖像,但由於某種原因它不玩球:如何根據路徑/網址選擇圖像?

最終我喜歡的東西后:

var imgs = $("img[@src='images/object.png']:not(:hidden)"); 

但即使有喜歡的東西很簡單:

$("img[@src='images/object.png']"); 

引發此錯誤:「TypeError:Object不支持此屬性或方法」。

如果我忽略從查詢中@:

$("img[src='images/object.png']"); 

我沒有得到任何物品返回。我在運行時直接從生成的html複製並粘貼路徑,但仍拒絕返回任何項目。如果我用id選擇器替換src選擇器,它將返回項目。

這是在運行時產生的圖像標籤:

<img id="ctl00_ContentPlaceHolder1_object_1" src="images/object.png" style="height:16px;width:16px;border-width:0px;visibility:visible;display:inline;margin-right:3px;" /> 

我運行的jQuery 1.4.2,我已經檢查了所有的文件,所有似乎正確編碼。我認爲這不是一個錯誤,而是我的錯誤解釋。任何人都可以對此有所瞭解嗎?

乾杯

+0

你試過子字符串匹配'src * = images/object.png'? – 2010-07-02 17:32:48

回答

7

不要使用@並確保包括完整的查詢過。如果有的話。

$("img[src='/images/marketing/logo.png?1277792289']")[0] 

你可以做串匹配以及

$("img[src*='logo']")[0] 

而且:not選擇是放錯了地方。它不應該在屬性括號中。

$("img[src*='logo']:not(:visible)")[0] 
+1

另外,':not(:hidden)'應該出現在''''之外,如:'img [src ='images/object.png']:not(:hidden)' – casablanca 2010-07-02 17:28:01

+0

正確,將它添加到答案中。 – 2010-07-02 17:30:08

+0

@casablanca:這是我在編寫問題時引入的一個錯誤,在我的原始代碼中,這是正確的。我已經在我的例子中修復了它。對此感到抱歉。 – BenAlabaster 2010-07-02 17:32:35

1

這曾經是jQuery中的一個bug,顯然它仍然是。

看看下面的門票:

從本質上講,你有什麼,如果你使用attributeEndsWith將工作($)或attributeContains(*)選擇器因爲se jQuery並沒有比較你的字符串與你放入圖像src屬性的內容,而是完整的url路徑(即http:// ..... /images/object.png)