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

Save query selector in variable to append doesnt work

本文关键字:变量 不起作用 追加 查询 选择器 保存 存在      更新时间:2023-09-26

我想将 html 元素保存在变量中,然后用子元素附加该元素。我可以使用通常的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
    },
}

为什么一切都如此复杂?我简化了其中的一些。

$(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 集合),因此不会追加任何内容。