插件中的jquery数据属性查找父级

时间:2016-06-20 09:27:12

标签: jquery custom-data-attribute

有这个简单的jquery插件,如果给定的数据属性存在于带有classname" async"的元素上,它将通过ajax加载数据我试图确定数据应该被包装的位置但没有任何结果

(function($) {
  $.fn.asyncLoader = function(options) {
    var $self = this;
    var settings = $.extend({}, options);
    var attributes = [];
    return this.each(function(i) {
      attributes = $(this).data();
      $.each(attributes, function(key, value) {
        if (key == 'load') {
          if (value.target) {
            var el = $('.async').filter('[data-load = \'{"target" : "' + value.target + '" }\' ]');
            el.load(value.target)
          }
        }
      });
    });
  };
}(jQuery));

标记看起来像

<div class="async" data-load = '{"target": "/my-target"}'></div>

如何找到父元素?

1 个答案:

答案 0 :(得分:0)

改为使用filter()回调,

var el = $('.async').filter(function(){
    return $(this).data('load') === '{"target": "'+ value.target +'"}'
});

或以下 - *这可能需要对对象进行额外检查。

var el = $('.async').filter(function(){
    return $(this).data('load').target == value.target
});