我目前正在使用jQuery加载一组HTML DOM元素,我将其作为子元素附加到div。然而,即使在ajax调用完成之后,如果我选择从ajax调用中检索到的某个元素,它仍会返回旧的替换值,这是一种让我感到困惑的行为。
var ajax_call = $.ajax({method: "GET", url: url, data: data, dataType: "html"})
.done(function(data) {
$('.parent-div').replaceWith( $.parseHTML(data) );
//DEBUG: Here i try to select a DOM element from the call although it returns the data that should have been replaced.
console.log( $(".child-div").attr("data-test") );
console.log("Done");
})
.fail(function(error) {
alert( "Error" );
})
.always(function() {
console.log( "always" );
});
基本上它应该从"new data"
属性返回data-test
但它仍然会获得"old-data"
,这是一种不受欢迎的行为。我尝试过google和stackoverflow的许多不同解决方案。我还尝试使用.detach()
,.remove()
和不同的方法来确保检索到的DOM元素从AJAX(真的)被替换。