我在创建一个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
答案 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。因此问题。