JQuery - 无法选择动态附加到表的对象

时间:2016-05-03 10:21:43

标签: javascript jquery html jquery-selectors

所以我有这段代码:

$( document ).ready(function() {
  $.getJSON(url_dbpath, function(db) {
  var tr;
  //some code

  for (...) {
    tr = $("<tr class='division' id='" + division.name + "'>");
    tr.append("<td>" + division.name + "</td>");
    tr.append(....);
    tr.append("</tr>")
    $('#datatable').append(tr);
  }

...按预期工作,正确附加加载到#datatable对象的数据。 <tr>个对象具有正确的类和ID。

后来我有了这个:

  $("#datatable").on("click", ".division", function() {
    console.log("div");
  });

这也可以按预期工作,为“.division”<tr>添加一个监听器。

但是,我无法以任何方式选择附加的行或数据对象。例如,我想这样做:

$(".division").hide();

但是当我在代码中调用它时,选择器返回一个空数组。我只能选择#datatable对象和默认存在的<th>行。我尝试了$("#datatable").find(".division")(返回[]),$("#datatable").children().children()(第一个返回tbody,第二个返回[]),按ID选择,移动选择器到代码的末尾。

但是,当我加载页面并在控制台中使用相同的命令时,它们会返回正确的输出(在控制台中)。

如何选择对象?

1 个答案:

答案 0 :(得分:0)

您是否尝试过以其他方式创建元素?我的意思是,尝试将你的tr元素构建为

$("<tr class='division' id='" + division.name + "'></tr>")
.append("<td>...</td>")
.append("<td>...</td>")
...
.appendTo($('#datatable'))