主干视图没有选择元素
Backbone View not selecting element
这是我第一次使用Backbone创建视图,但是我无法呈现对文档中现有元素的更改。
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();
单词hello world!
不出现在目标div
中。
呈现视图时,控制台输出如下内容:
WOW
doing it
0
1
所以我知道我的jQuery选择器$('#node-parameters')
是寻找1 DOM元素,但视图不使用它。
你知道我做错了什么吗?
EDIT:在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();
});
http://jsfiddle.net/nikoshr/mNprr/请注意,您的类是在DOM就绪事件之前声明的。使用$('#node-parameters')
将el设置为扩展时间。$
是一个立即执行的函数,但是,这就是为什么你得到一个未定义的元素,#node-parameters在那时不存在。
通过向元素注入new ParamsView({el: '#node-parameters'})
,可以在DOM ready事件之后设置一个有效的el。你也可以通过
var ParamsView = Backbone.View.extend({
el: '#node-parameters'
});
然后,在DOM就绪事件之后,在实例化类时计算 el
。http://jsfiddle.net/nikoshr/mNprr/1/
相关文章:
- WebdriverIO waitForExist()选择元素's选定的选项
- 如何选择元素的第n个子元素
- Angular没有根据模型更新我的选择元素
- jquery使用name from变量按类选择元素
- 如何使用jQuery按数据日期属性选择元素
- 向html选择元素添加选项
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- 使用Jquery在相同类型的元素中选择元素
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- 如何在Angular中清除选择元素中的过滤器
- 使用其中一个元素作为参考点,从Javascript数组中选择元素
- Javascript选择元素到字符串的比较
- 如果有许多元素使用相同的类,我如何使用JavaScript获取特定的元素
- Angular始终选择选择元素中的第一个选项
- 使用 jquery .find() 遍历按类和存储属性选择元素
- Javascript:当元素中有<选择>时,可拖动元素搞砸了
- 如果背景中有图像,则无法在IE中选择元素
- 有没有办法在 JS 中按标题选择元素
- 在第一个下拉值有子元素,然后用户在第二个下拉列表中选择相同的值应该使用 jquery 接受
- 使用Javascript或CSS,是否有选择CSS样式溢出:隐藏的元素