jquery
  • find
  • background-image
  • 2010-07-14 58 views 1 likes 
    1

    我想選擇一個具有特定背景圖像的div,這是我到目前爲止。不工作。我做錯了什麼想法?我試圖按照jQuery文檔。jquery select基於背景圖像名稱的元素

    var markerShadow0 = $("div[background-image='url(\"http://www.axtsweapons.com/gmarkers/markershadowA.png\")]"); 
    

    回答

    0

    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; 
    
        } 
    
    
    }); 
    
    +0

    非常感謝!順便說一句,我知道一個等號是分配,兩個是比較,但三是什麼? – abemonkey 2010-07-15 00:53:49

    +0

    @abemonkey - 它是一個嚴格的等號運算符,它只在兩個操作數相同且類型相同時才返回true。 – redsquare 2010-07-15 00:56:26

    +0

    我今天發現的這個解決方案的問題是,它不能與Firefox以外的任何瀏覽器(這是我一直在開發的瀏覽器)兼容。有什麼想法爲什麼? – abemonkey 2010-07-15 16:07:08

    0

    您是否遺漏了網址的右括號之後的單個記號?我看到一個打開的勾號,但沒有關閉。

    -1

    背景圖像不是一個分區的屬性,它是一個風格的屬性。這意味着你將不得不以這種風格來抓分區。

    0

    我不相信你可以把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選擇一些常見的父元素,你會大大減少你將要迭代的元素的數量。

    相關問題