我想選擇一個具有特定背景圖像的div,這是我到目前爲止。不工作。我做錯了什麼想法?我試圖按照jQuery文檔。jquery select基於背景圖像名稱的元素
var markerShadow0 = $("div[background-image='url(\"http://www.axtsweapons.com/gmarkers/markershadowA.png\")]");
我想選擇一個具有特定背景圖像的div,這是我到目前爲止。不工作。我做錯了什麼想法?我試圖按照jQuery文檔。jquery select基於背景圖像名稱的元素
var markerShadow0 = $("div[background-image='url(\"http://www.axtsweapons.com/gmarkers/markershadowA.png\")]");
background-image不是元素的屬性,而是CSS樣式。你將不得不遍歷所有div並檢查css風格
$("div").each(function(){
if ($(this).css('background-image') === 'http://www.axtsweapons.com/gmarkers/markershadowA.png') {
//do something
//stop loop
return false;
}
});
您是否遺漏了網址的右括號之後的單個記號?我看到一個打開的勾號,但沒有關閉。
背景圖像不是一個分區的屬性,它是一個風格的屬性。這意味着你將不得不以這種風格來抓分區。
我不相信你可以把CSS屬性當作屬性來處理,這就是你用div[attribute=value]
選擇器所做的。
你也許能夠得到div[style*=background-image:url(http://...)]
工作(見this),但你可能會很喜歡的東西更好:
$('div').each(function(i, e) {
if ($(e).css('background-image') == 'http://www.axtsw...dowA.png')) {
// element matches
}
});
注意,這將檢查每個頁面上的DIV。如果你可以通過ID選擇一些常見的父元素,你會大大減少你將要迭代的元素的數量。
非常感謝!順便說一句,我知道一個等號是分配,兩個是比較,但三是什麼? – abemonkey 2010-07-15 00:53:49
@abemonkey - 它是一個嚴格的等號運算符,它只在兩個操作數相同且類型相同時才返回true。 – redsquare 2010-07-15 00:56:26
我今天發現的這個解決方案的問題是,它不能與Firefox以外的任何瀏覽器(這是我一直在開發的瀏覽器)兼容。有什麼想法爲什麼? – abemonkey 2010-07-15 16:07:08