获取jQuery .each()
' s element
参数
$(".element").each(function(i, e){
console.log("element: " + $(e));
});
并使用$(this)
?
$(".element").each(function(){
console.log("element: " + $(this));
});
我已经做了几次测试,并且以编程方式我没有发现任何差异。我一直在使用$(this)
,因为它是大多数应用程序使用的标准。
答案 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
});
})