我对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