Backbone this.el vs this。$ el

时间:2014-03-10 15:17:55

标签: javascript jquery backbone.js

对于给定的示例,this.el和&之间的区别是什么? this.$el

我理解this.$el指向this.el的jQuery对象,在这种情况下为'li'

当我渲染视图时,我可以在this.elthis.$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});

1 个答案:

答案 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的影响。