对于给定的示例,this.el
和&之间的区别是什么? this.$el
我理解this.$el
指向this.el
的jQuery对象,在这种情况下为'li'
。
当我渲染视图时,我可以在this.el
或this.$el
之间进行选择。当我引用jQuery对象时,如何向页面呈现内容?我可以看到如何使用this.$el.html(property)
指向html,但为什么附加this.$el
并让它渲染是让我困惑的原因。
var Person = Backbone.Model.extend({
defaults: {
name: 'John Doe',
age: 30,
occupation: 'worker'
}
});
var PersonView = Backbone.View.extend({
tagName: 'li',
initialize: function() {
this.render();
},
render: function() {
var out = this.$el.html(this.model.get('name') + this.model.get('occupation'));
console.log(this, this.el, this.$el, out);
$('body').append(this.$el);
},
});
var person = new Person;
var personview = new PersonView({model: person});
答案 0 :(得分:5)
Bojangles是正确的。
this.$el
是对jQuery上下文中元素的引用,通常用于.html()
或.addClass()
等内容。例如,如果你有一个id为div的div someDiv
,并将其设置为Backbone视图的el
属性,以下语句是相同的:
this.$el.html()
$("#someDiv").html()
$(this.el).html()
this.el
是本机DOM元素,不受jQuery的影响。