如何从jquery对象映射中过滤唯一的data-attr值

时间:2012-09-20 12:35:34

标签: javascript jquery dom jquery-plugins jquery-mobile

我有一个插件,可以找到给定父元素中的所有img元素。一些图像是我需要从阵列中删除的重复图像。我想我可以将它们全部放入一个数组中然后过滤掉重复数据,或者当我遍历地图时进行某种条件检查但不太确定如何进行操作

jq插件

(function( $ ){
  $.fn.cacheImages = function() {
    this.find('img').map(function(){
      if($(this).attr('data-src') == null ||$(this).attr('data-src') == 'null'){
        return;
      }
      else{
        //do something here if $(this).attr('data-src') has not bed traversed yet
      }
    });
  };
})( jQuery );

然后调用

  $('#something-with-images').cacheImages();

1 个答案:

答案 0 :(得分:1)

您可以在使用对象时将URL保存到对象中吗?

(function( $ ){

    var srcURLs = {};

    $.fn.cacheImages = function() {

        this.find('img').map(function(){
            var thisSrc = $(this).attr('data-src');

            if(thisSrc == null || thisSrc == 'null' || srcURLs[thisSrc]){
               return;
            }
            else{
                srcURLs[thisSrc] = 1;
                 //do something here if $(this).attr('data-src') has not bed traversed yet
            }


    });

})( jQuery );