我想在变量中保存一个html元素,而不是用childelements附加该元素。我可以使用通常的jquery选择器追加该元素,但不能使用变量。为什么呢?
这是我的代码:
var elements, UserTableWidget = {
elements: {
pagination: $("#pageNumbers")
},
init: function() {
elements = this.elements;
elements.pagination.append("<li>test</li>") // works not
$("#pageNumbers").append("<li>test</li>") // works
},
}
答案 0 :(得分:1)
为什么一切都这么复杂?我简化了一些。
$(function(){
var UserTableWidget = {
elements: {
pagination: $("#pageNumbers")
},
init: function() {
this.elements.pagination.append("<li>test</li>");
},
}
UserTableWidget.init()
// same as: UserTableWidget.elements.pagination.append("<li>test</li>");
});
正如评论中所提到的,this.elements.pagination
可能在dom准备好之前初始化为("#pageNumbers")
。稍后调用init()
时,它会使用之前计算的值(空jQuery集合),因此不会附加任何内容。