将查询选择器保存在变量中以追加不起作用

时间:2013-11-13 13:05:24

标签: javascript jquery append

我想在变量中保存一个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
    },
}

1 个答案:

答案 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集合),因此不会附加任何内容。