2011-04-28 84 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 
    } 
}); 
相关问题