DOM没有更新,jquery选择器没有检测动态元素以便进一步处理

时间:2014-10-03 17:06:50

标签: javascript jquery html html5

我正在使用ajax调用

将表添加到我的html中
$.ajax({
  url: "/getdata",
  type: "POST",
  data: {data : jsonString},
  success: function( resp ){
          //console.log(resp);
          $('div.table-responsive').html(resp);

  }
  });

我可以在broswer视图中找到正确位置的桌子。但是当我在单独的脚本标签

中运行时
console.log("Tables found"+$('table').length)

输出为0。

如何动态添加元素后更新dom,以便我可以进一步处理它们。

我在这个问题上阅读了很多答案,每个人都在谈论为这些动态添加的元素分配事件,但是我只需要为这些标签添加一些类,这样我的css和javascript就可以处理它们。

2 个答案:

答案 0 :(得分:0)

你的表操作应该在回调中:

$.ajax({
    url: "/getdata",
    type: "POST",
    data: {
        data: jsonString
    },
    success: function (resp) {
        //console.log(resp);
        $('div.table-responsive').html(resp);
        console.log('table length: ' + $('.table-responsive table').length);
        // Do something with the tables here
    }
});

答案 1 :(得分:-1)

由于这是异步的,你需要一个事件或回调。尝试这样的事情:

$('table').contentChange( function(){
    // do something
    console.log('table length: '+this.length);
});