将 $(this) 传递给 jQuery 中 each() 的回调

Pass $(this) to callback of each() in jQuery

我有一个函数,我通过在 jQuery 中的一个元素上调用 each() 来调用它。我想将调用 each() 的元素作为参数传递。这是我现在拥有的代码的抽象版本,但是当我将 $(this) 传递给 each() 的回调时,它传递的是文档。

var myFunction = function(element){
    //do stuff with element
};

$('.element').each(myFunction($(this)));

我很乐意提供任何帮助,干杯!

$('.element').each(function(){
    myFunction($(this)); 
});

您正在处理的模式可以直接转换为 jQuery 附加组件:

$.fn.myFunction = function() {
  return this.each(function() {
    // original "myFunction" code
    // here, "this" will be bound to each element
  });
};

现在你可以写了

$(".element").myFunction();

如果你像我的例子一样用 return 语句编写它,你可以像使用任何其他 jQuery 函数一样使用它:

$(".element").addClass("something-else").myFunction().hide();