jquery – 如何让代码等待html()和append()函数完成?

前端之家收集整理的这篇文章主要介绍了jquery – 如何让代码等待html()和append()函数完成?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将iframe中body元素的html设置为字符串str,然后我想在下一行访问该内容(这里只是使用警告调用显示内容)但是html和append函数没有在调用alert语句时完成.
$(function(){
....
$("#notes-tab span.add_draft").bind("click",function(e){
    var str = '';
    $(this).parent().siblings(".tab-content").children(".para").each(function(ind) {
        str += $(this).find('div:first').html();
    });
    var curr = $("#content_rte").contents().find("body").html();
    if (curr == ' ' || curr == '<br>') {
        $("#content_rte").contents().find("body").html(str);
    }
    else {
        $("#content_rte").contents().find("body").append(str);
    }
    alert($("#content_rte").contents().find("body").html());
});
});

当然,html和append函数都不会进行回调.

有人可以告诉我,在继续之前,人们通常会如何完成等待DOM的更改?

解决方法

除了在尝试检索HTML之前设置任意超时之外,没有直接的等待方法.这样做的代码是:
// wait for 250 ms,then try and retrieve contents
setTimeout(function() {
    alert($("#content_rte").contents().find("body").html());
},250);

您应该尝试使超时足够小以至于不被注意但足够大以允许内容更新,因此您可以远远少于250毫秒.

原文链接:https://www.f2er.com/jquery/178111.html

猜你在找的jQuery相关文章