使用jquery获取动态添加的元素值

时间:2018-05-22 07:59:19

标签: jquery ajax

我在创建一个ajax调用时创建了一个脚本我有一个div,其中有一个表在该表中有一个数据列表我想要获得新添加的tr值但是当我尝试这样做时给我一个未定义的错误,因为当我看到刚刚添加的行时,是否可以在同一个调用中按类名获取新添加的行值?请参考下面的代码我不善于解释我的问题,但我的意见表示赞赏,我可以回答。

$.ajax({
  type: "POST",
  data: {
    symbol: symbol,
    val1: val1,
    val2: val2,
    val3: val3,
    val4: val4,
    val5: val5,
    val6: val6,
    val7: val7,
    line_val: line_val
  },
  dataType: "text",
  url: "getCompanyData.php",
  success: function(data) {
    $('.content_panel').append(data);
    $('.load_analyzer').hide();
  }
});

if ($('.radiobox').hasClass('activeradio')) {
  var active_line = $('.activeradio .line_check').val();
  var new_added = $('.line2').attr('data-line2');
}
console.log('New Added Value : ' + new_added); // This is showing as undefined as this row is just being added with above call how do I get this value

1 个答案:

答案 0 :(得分:1)

为此,您需要将success语句放在 $.ajax({ type: "POST", data: { symbol: symbol, val1: val1, val2: val2, val3: val3, val4: val4, val5: val5, val6: val6, val7: val7, line_val: line_val }, dataType: "text", url: "getCompanyData.php", success: function(data) { $('.content_panel').append(data); $('.load_analyzer').hide(); if ($('.radiobox').hasClass('activeradio')) { var active_line = $('.activeradio .line_check').val(); var new_added = $('.line2').attr('data-line2'); } console.log('New Added Value : ' + new_added) } }); 处理程序中:

success

这是因为AJAX请求是异步的 - 这就是第一个' A'代表。这意味着逻辑执行继续传递请求,同时它正在进行中。只有在收到响应后才会执行match处理程序。这可能是几毫秒之后,或几分钟之后。无论哪种方式,在您的原始代码中,您都会在更新之前尝试阅读DOM。因此问题。