是否有html()函数的回调或检查它已完成的方法.例如:
$("#some_div").html('something here');
if($("#some_div").html() == ''){
//do something here
}
Run Code Online (Sandbox Code Playgroud)
我从帖子中设置元素的html.有时候它没有加载,所以当它没有加载我想它做某事,这是可能的.我现在拥有它的方式总是做另一件事,因为它检查它有html时没有设置html.
几年来,我正处理一个兼职问题,其中一些装有jquery html函数的DOM元素在函数调用后不能立即访问(行为有点像执行函数而不等待文档就绪事件).即使.html()是假设是同步的,这个苏答案(也是这一个)建议使用的承诺html函数:
$('#divId').html("<h1>hello</h1>").promise().done(function(){
//Callback
});
Run Code Online (Sandbox Code Playgroud)
承诺在这样的上下文中是有意义的,但是对于这个承诺有什么好处,它也将与每个jquery的对象一起返回:
$('#divId').promise().done(function(){
//Will also be called...
});
Run Code Online (Sandbox Code Playgroud)
由于我在html函数的文档中找不到任何关于它的内容,我想知道这个promise的真正目的是什么,以及它是否在这种情况下正确使用.
我试图在div中写入一些文本之后运行一些javascript代码,如下所示:
<!DOCTYPE html>
<html>
<head>
<title>HTML Tutorial</title>
</head>
<body>
<button type="button" id="btnTest">Click</button>
<div id="testDiv" style="width:100px; height: 100px; background-color: red;">
</div>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type='text/javascript'>
$('#btnTest').on('click', function() {
$('#testDiv').html('hello');
for(var i=0; i<5000; i++) {
console.log('testing');
}
});
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
我想在单击按钮后立即在div中显示文本'hello',并且只有在此之后我才想要执行for循环.但是,仅在for循环运行时才会显示文本.
我怎么解决这个问题?