我应该将我的jQuery选择器存储到变量中吗?

时间:2015-05-05 13:53:19

标签: jquery

我很好奇

之间的差异
$('#btn').click(function(e) {
    e.preventDefault();
    //do sth
});

注意$('#btn')

并且: 我将选择器存储到变量中并重新使用。

$btn = $('#btn');
$btn.click(function(e) {
    e.preventDefault();
    //do sth
});

注意$btn

现在想象一下,如果我在我的文件中做了1000次这样做,哪一个更好,为什么?

2 个答案:

答案 0 :(得分:1)

  

现在想象一下,如果我在我的文件中做了1000次这样做,哪一个更好,为什么?

哪一个更好:

第二种方法。

<强>为什么:

如果是第一种方法,$('#btn')每次使用时都会在html中查找元素。而在第二种情况下,它已经获取了存储在变量中的对象,并且不再在DOM中查找该元素。

答案 1 :(得分:1)

如果必须多次使用同一个选择器,则应将此选择器存储到变量并多次使用。

另一方面,如果您只想使用一次选择器,则没有理由将选择器存储到变量中。

例如:

$('table tr').each(function() {
   // Store the $(this) object to a variable in order to use it multiple times
   var that = $(this);
   var id = that.attr('id');
   that.attr('title', 'this row has id: ' + id);
});