如果filename包含字符串,则删除IMG上的类

时间:2011-04-28 13:05:26

标签: jquery

我对jQuery世界相当新,但我开始更好地掌握事物。

我遇到过一些需要帮助的情况,我想知道如何设置一个查看图像文件名的if语句并查看它是否包含数字31 ,如果确实删除了附加的类。

提前谢谢你

6 个答案:

答案 0 :(得分:8)

试试这个:

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

编辑:实际上它会搜索整个src属性,所以只有当你的网址在其他任何地方都没有“31”时它才是正确的。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

一种很好的方法是使用函数作为.removeClass()的参数。

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

.replace(/^.*\//, '')将只返回文件名(example on SO),因此如果其他地方的网址中有31(例如/pix/31/image.jpg),则不会删除发生。

如果符合条件,函数应返回要删除的类名,否则返回false(表示不应删除任何内容)。

如果您不想检查整个页面(添加类或指定context),可以用更具体的内容替换img选择器。

jsFiddle Demo

答案 3 :(得分: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
    }
});

答案 4 :(得分:0)

var img = $('#img_to_look_at');
if ( img.attr('src').indexOf('31') > -1 ) img.removeClass('....');

答案 5 :(得分:-1)

希望这能解决您的问题。

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