为什么使用这个。$(selector).method()语法与骨干?

时间:2013-06-18 15:22:25

标签: backbone.js

我在教程中看到了这一堆代码:

var searchTerm = this.$('#searchTerm').val().trim();

我想了解选择器前this.的效用,这是我第一次看到它。

3 个答案:

答案 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