基本上我的img src看起来像这样,并且有类名.pic:
img/folderA/..
img/folderB/..
img/folderC/..
..
img/folderZ/..
我希望每个img示例添加类名如果imc src等于/ folderA /然后添加img类名'thisisA'等等,我尝试了类似这样的东西,但它不会有任何帮助?
$('.pic').each(function(i){
var imgSrc = this.src;
if(imgSrc.indexOf('/folderA/')){
$(this).addClass('thisisA');
}
else if(imgSrc.indexOf('/folderB/')){
$(this).addClass('thisisB');
}
});
答案 0 :(得分:2)
$('.pic').each(function(i){
var imgSrc = this.src;
if(imgSrc.indexOf('/folderA/') >= 0){
$(this).addClass('thisisA');
}
else if(imgSrc.indexOf('/folderB/') >= 0){
$(this).addClass('thisisB');
}
});
当没有匹配时, indexOf
返回-1,if
将0以外的任何内容视为“真”。
答案 1 :(得分:0)
怎么样:
$('.pic').each(function(i){
var imgSrc = this.src;
if(imgSrc.indexOf('/folderA/') > -1){
$(this).addClass('thisisA');
}
else if(imgSrc.indexOf('/folderB/')){
$(this).addClass('thisisB');
}
});
如果indexOf返回0则它将为false,这可能是发生的事情:
if(0){dosomething()}
永远不会dosomething();
答案 2 :(得分:0)
indexOf
方法返回字符串中您要查找的位置。这可能会导致一些奇怪的问题。例如:'hello'.indexOf('h');
将返回0,因为h
位于字符串的第一个位置(索引0)。
这意味着,如果你这样测试:
var str = 'hello';
if(str.indexOf('h')) //indexOf returns 0 which is evaluated as false
alert('hello');
else
alert('goodbye');
即使你期待你好,你也会一直警告你。
为了帮助解决此问题,如果在字符串中找不到您要查找的内容,indexOf
将返回-1
。所以你需要检查一下。所以使用你的代码就像是:
$('.pic').each(function(i){
var imgSrc = this.src;
if(imgSrc.indexOf('/folderA/') != -1){
$(this).addClass('thisisA');
}
else if(imgSrc.indexOf('/folderB/') != -1){
$(this).addClass('thisisB');
}
});