2011-04-28 32 views
1

我對jQuery世界相當陌生,但我開始更好地理解事物。如果文件名包含字符串,則刪除IMG上的類

我碰到過需要一點幫助的情況,我想知道如何設置if語句來查看圖像文件名並查看它是否包含數字31,如果它會刪除附加的類。

謝謝你的時間提前

回答

2

一個很好的方法是使用功能爲.removeClass()參數。

$('img').removeClass(function() { 
    if (this.src.replace(/^.*\//, '').indexOf('31') > -1) { 
     return 'classname'; 
    } 
    return false; 
}); 

.replace(/^.*\//, '')將返回唯一的文件名(example on SO),所以如果在URL其他地方(如在/pix/31/image.jpg)一31,去除不會發生。

如果滿足條件,函數應該返回要刪除的類名,否則返回false(指示什麼都不應該被刪除)。

如果您不想檢查整個頁面(添加類或指定context),則可以將img選擇器替換爲更具體的選擇器。

jsFiddle Demo

8

試試這個:

$('img[src*="31"]').removeClass("classname"); 

編輯:實際上它搜索整個src屬性,因此,如果您的網址不能有「31」,在它這是唯一正確的任何地方其他。

0
var img = $('#img_to_look_at'); 
if (img.attr('src').indexOf('31') > -1) img.removeClass('....'); 
2
$("img[src*='31']").removeClass("myClass"); 
-1

希望這將解決您的問題。

if(jQuery("img[src*='31']").size()>0){ 
    jQuery("img[src*='31']").removeClass('className') 
}; 
+0

最好在這裏使用'.length'。 – mattsven 2011-04-28 13:17:32

+0

'if'是完全不必要的。如果沒有這樣的元素,反正什麼都不會發生。你也不應該使用同一個選擇器兩次,將它保存到一個變量中。 – kapa 2011-04-28 13:25:25

1
$('img[src*="31"]').each(function() { 
    // check if only the filename contains 31 
    var filename = $(this).attr('src').substr($(this).attr('src').lastIndexOf('/')); 
    if (filename.indexOf('31') != -1) { 
     $(this).removeClass(); // will remove all classes the img had 
    } 
});