我认为我读到了一些内容,表示对于这样的代码更好:
var id1 = $(this).attr('id')
var id2 = $(this).parent().parent().parent().parent().parent().attr('id')
var text = $(this).text()
..给一个变量如$this = $(this)
,然后使用它而不是每个$(this)。我不知道我在哪里读到这个,所以我的问题是它是真的吗?
答案 0 :(得分:2)
每次使用时,这样可以节省一些时间在jQuery数组集合中包装this
对象。如此简短的回答:是的,但差异不应该很大。
答案 1 :(得分:2)
如果我的问题是对的,是的。这是一个例子:
var t = $(this);
var id1 = t.attr('id');
var id2 = t.parent().parent().parent().parent().parent().attr('id') ;
var text = t.text();
答案 2 :(得分:1)
是的,你可以
var $this = $(this);
var id1 = $this.attr('id');
var id2 = $this.parent().parent().parent().parent().parent().attr('id') ;
var text = $this.text();
答案 3 :(得分:1)
如果您的问题是将选择器分配给local var,那么您就是对的。这与Javascript的范围性质有关。
如果我在使用本地var时记得正确,那么变量查找会更快。特别是如果您多次使用选择器。
我不知道你在哪里阅读它,但我在Google Developer Stuff上观看了一段关于此事的视频。
我不记得原始视频,但请查看video。这是一个很好的手表。
同时检查this幻灯片
答案 4 :(得分:1)
让我再补充一点
以下称为缓存,用于提高DOM操作的性能, 以下代码将缓存对象,并且每次对$ this执行任何操作时都不会查询DOM。
var $this = $(this);
var id1 = $this.attr('id');
每次必须对DOM进行查询时,$(this)可能会花费更少的费用
var id1 = $(this).attr('id');