Javascript 主干视图未选择元素
这是我第一次使用主干创建视图,但我无法呈现对文档中现有元素的更改Javascript 主干视图未选择元素,javascript,jquery,backbone.js,backbone-views,Javascript,Jquery,Backbone.js,Backbone Views,这是我第一次使用主干创建视图,但我无法呈现对文档中现有元素的更改 var ParamsView = Backbone.View.extend({ el: $('#node-parameters'), initialize: function() { console.log('WOW'); }, render: function() { console.log('doing it'); console.log(t
var ParamsView = Backbone.View.extend({
el: $('#node-parameters'),
initialize: function() {
console.log('WOW');
},
render: function() {
console.log('doing it');
console.log(this.$el.length);
console.log($('#node-parameters').length);
this.$el.append('<span>hello world!</span>');
return this;
}
});
var v = new ParamsView();
v->render();
因此我知道我的jQuery选择器$(“#节点参数”)
正在查找1个DOM元素,但视图没有使用它
知道我做错了什么吗
编辑:在JS调试器中,我可以看到
this.el
对于视图是未定义的。您的代码可能与此等效:
var ParamsView = Backbone.View.extend({
el: $('#node-parameters'),
initialize: function() {
console.log('WOW');
},
render: function() {
console.log('doing it');
console.log(this.$el.length);
console.log($('#node-parameters').length);
this.$el.append('<span>hello world!</span>');
return this;
}
});
$(document).ready(function() {
var v = new ParamsView();
v.render();
});
el
然后在DOM就绪事件之后实例化类时进行计算 你能试试var v=newparamsview({el:'#node parameters'})吗代码>?@nikoshr,这很有效!我想知道为什么?几分钟后会有解释:)如果我把el改成一个字符串,而不是一个jQuery选择器,我的代码现在就可以工作了。@MathewFoscarini el应该是一个HTML元素,$el包含jQuery元素(但是,我想如果你使用new ParamsView({el:'$(#node parameters'));
它会工作,因为构造函数会将其更改为HTML元素)。实际上,我的代码是在document.ready之后通过AJAX请求执行的$(“#节点参数”)。在调用new ParamsView()
之前,长度将为1。不过,使用字符串解决了这个问题。
var ParamsView = Backbone.View.extend({
el: $('#node-parameters'),
initialize: function() {
console.log('WOW');
},
render: function() {
console.log('doing it');
console.log(this.$el.length);
console.log($('#node-parameters').length);
this.$el.append('<span>hello world!</span>');
return this;
}
});
$(document).ready(function() {
var v = new ParamsView();
v.render();
});
var ParamsView = Backbone.View.extend({
el: '#node-parameters'
});