0

現在、特定の div 内の画像を検索し、特定のクラスの画像を除外する次の jQuery スニペットがあります。

var postImgs = $('#primary img');
var classes = new Array(".skip", ".block", ".ignore");    

postImgs.each(function (){  
   if(!$(this).is(classes.join(", "))) {
      //Do Something
   }
});

また、特定のファイル名をチェックして、関数を適用しないようにすることも必要です。だから私は何かを試しました...しかし、うまくいきませんでした:

postImgs.not('img[src$="uniquefile.jpg"]').each(function (){ }

それでも、自分の classes でできるように、ファイル名の配列を提供できるようにしたいと考えています。

では、既に使用しているクラス フィルターを保持するだけでなく、スキップするファイル名の配列を指定するにはどうすればよいでしょうか。そうすれば、次のようなことができます。

var fileNames = new Array("uniquefile.jpg", "somename.png", "anotherfile.gif");
4

2 に答える 2

0
var fileNames = new Array("uniquefile.jpg", "somename.png", "anotherfile.gif");

postImgs.each(function (idx, elem){  
    var ok = true;
    $.each(fileNames, function(i, filename) {
        if (elem.src.indexOf(filename) != -1) ok = false;
    });

    if (ok) {
        //image file is not excluded, do something
    }

});

または、セレクターをフィルタリングできます。

var fileNames = new Array("uniquefile.jpg", "somename.png", "anotherfile.gif");

postImgs.filter(function() {
    return $.inArray(this.src, fileNames); //requires exact match
});
于 2012-12-05T20:08:31.250 に答える
0

セレクターでこのようなことができます

var filenames = ['google.com','msn.com','yahoo.com'];

$('img').not('[src$="' + filenames.join('"],[src$="') + '"]'); // <-- gets images that are not specified in array

http://jsfiddle.net/DF9rx/

于 2012-12-05T20:11:07.890 に答える