我在教程中看到了这一堆代码:
var searchTerm = this.$('#searchTerm').val().trim();
我想了解选择器前this.
的效用,这是我第一次看到它。
答案 0 :(得分:5)
在Backbone.View
中,this.$
提供了jQuery的范围版本。它实际上等同于使用this.$el.find
,而$(this.el).find
相当于使用id
。
无论如何,使用它的一个好主意的原因是它只能从视图的元素/渲染模板中访问html元素。因此,您不必担心html页面的其余部分,并且您将始终选择您期望的元素。
想象一下,您有一个产生子视图的视图,并且每个视图都有一个可编辑的字段。如果您不使用范围的jQuery版本来获取正确的可编辑字段,则必须为每个html元素提供唯一的class
,以确保在检索其内容时选择正确的元素。另一方面,如果您使用范围版本,则只需为此可编辑字段指定{{1}}属性,选择此类将为您提供唯一的元素,即正确的元素。
答案 1 :(得分:2)
这是与this.$el.find('#searchTerm').val().trim();
答案 2 :(得分:1)
您尚未向该代码提供任何上下文,但假设它是视图中的方法,this
引用View对象。
this.$
是从View对象访问jQuery的快捷方式,相当于方法this.$el.find
。