即使在用AJAX调用替换之后,jQuery也会选择旧的DOM元素

时间:2015-07-07 13:34:48

标签: jquery ajax dom replacewith

我目前正在使用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(真的)被替换。

0 个答案:

没有答案