3

基本上我的 img src 看起来像这样并且有类名 .pic:

img/folderA/..
img/folderB/..
img/folderC/..
..
img/folderZ/..

如果imc src等于/folderA/,我想为每个img示例添加类名,然后添加该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');
        }
});
4

3 回答 3

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,并且 0 以外的任何值都被if.

于 2012-11-26T22:22:45.053 回答
0

这个怎么样:

http://jsfiddle.net/nZCre/1/

 $('.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();

于 2012-11-26T22:22:32.097 回答
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');
    }
});
于 2012-11-26T22:24:18.717 回答