我目前有以下jQuery snipplet,它将在特定div中查找图像并排除具有特定类的图像:
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 (){ }
即便如此,我更愿意提供一个文件名数组,就像我可以使用我的类一样。
那么除了保留我已经使用的类过滤器之外,我怎样才能指定要跳过的文件名数组?这样我可以做这样的事情:
var fileNames = new Array("uniquefile.jpg", "somename.png", "anotherfile.gif");
答案 0 :(得分: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
});
答案 1 :(得分:0)
您可以在选择器中执行类似的操作
var filenames = ['google.com','msn.com','yahoo.com'];
$('img').not('[src$="' + filenames.join('"],[src$="') + '"]'); // <-- gets images that are not specified in array