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メソッドは、探している文字列内の位置を返します。これにより、いくつかの奇妙な問題が発生する可能性があります。例:は文字列の最初の位置 (インデックス 0) にある'hello'.indexOf('h');ため、0 を返します。h

つまり、次のようにテストした場合:

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 に答える