我對jQuery世界相當陌生,但我開始更好地理解事物。如果文件名包含字符串,則刪除IMG上的類
我碰到過需要一點幫助的情況,我想知道如何設置if語句來查看圖像文件名並查看它是否包含數字31
,如果它會刪除附加的類。
謝謝你的時間提前
我對jQuery世界相當陌生,但我開始更好地理解事物。如果文件名包含字符串,則刪除IMG上的類
我碰到過需要一點幫助的情況,我想知道如何設置if語句來查看圖像文件名並查看它是否包含數字31
,如果它會刪除附加的類。
謝謝你的時間提前
一個很好的方法是使用功能爲.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
選擇器替換爲更具體的選擇器。
試試這個:
$('img[src*="31"]').removeClass("classname");
編輯:實際上它搜索整個src屬性,因此,如果您的網址不能有「31」,在它這是唯一正確的任何地方其他。
var img = $('#img_to_look_at');
if (img.attr('src').indexOf('31') > -1) img.removeClass('....');
$("img[src*='31']").removeClass("myClass");
希望這將解決您的問題。
if(jQuery("img[src*='31']").size()>0){
jQuery("img[src*='31']").removeClass('className')
};
$('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
}
});
最好在這裏使用'.length'。 – mattsven 2011-04-28 13:17:32
'if'是完全不必要的。如果沒有這樣的元素,反正什麼都不會發生。你也不應該使用同一個選擇器兩次,將它保存到一個變量中。 – kapa 2011-04-28 13:25:25