是什么意思$('element',this.el)[0]?

时间:2016-08-04 07:54:40

标签: javascript jquery backbone.js marionette

现在我学习了Backbone和Marionette,我读了一些教程,发现了一些我不理解的代码。这是代码:

$('element',this.el)[0]

我知道jQuery一点点。我知道this个关键字,我知道$('element')关键字,但不了解该代码,请大家告诉我。

3 个答案:

答案 0 :(得分:5)

$('element',this.el)表示选择<element>中包含的所有this.elthis.el必须是另一个“对象”,但它取决于构建此更高层的内容。我在this answer to a similar question中详细介绍了这一点。

[0]只是解包返回vanilla DOM对象的jquery对象。所以:

$('element',this.el).first(); //works
$('element',this.el)[0].first(); //will error

第二个错误,因为它不再是一个jquery对象,所以它不包含在jquery函数中。

答案 1 :(得分:2)

  • 在Backbone上下文中,您的代码可能位于a view内,而this.el指的是view's element
  • $('element',this.el)element
  • 定义的范围内找到this.el个节点
  • $('element',this.el)[0]指的是找到的第一个element节点

请注意,在Backbone视图中,您可以简化为

this.$('element')[0]

答案 2 :(得分:0)

这是jquery selector context语法:

'element'是选择器,this.el是一个上下文,并使用括号表示法获取第一个元素[0],它还将jquery元素转换为javascript对象。

或者你可以使用这样的代替jquery选择器上下文语法:

$(this.el).find('element')[0] // hope you understand this syntax