获取jQuery' $(选择器).each()'元素'之间的区别参数,vs $(this)

时间:2016-10-26 14:51:11

标签: javascript jquery

获取jQuery .each()' s element参数

是否有任何差异(与性能或其他相关)
$(".element").each(function(i, e){
   console.log("element: " + $(e));
});

并使用$(this)

$(".element").each(function(){
   console.log("element: " + $(this));
});

我已经做了几次测试,并且以编程方式我没有发现任何差异。我一直在使用$(this),因为它是大多数应用程序使用的标准。

2 个答案:

答案 0 :(得分:4)

不,没有实际区别。在source of each中,我们可以看到相同的内容(obj[i])传递给call,以用作回调中的this和第二个参数:

value = callback.call(obj[i], i, obj[i]);

答案 1 :(得分:1)

虽然您的示例没有实际差异,但在封闭函数或方法调用中e的可用性是一个有用的功能。

例如:

$('.element').each(function(i, e) {
    $('.otherElement').text(function(index, element){

      // in this method, $(this) is an element from
      // the $('.otherElement) collection (also $(element));
      // to access elements of the $(`.element') collection
      // we can no longer use $(this), but we can still use
      // $(e) (or e):

      return $(e).eq(index).text(); // will set the text of the $(element)
                          // to the text of the $(e) element
    });
})