无法在打开的jQuery UI对话框中更新单个元素?

无法在打开的jQuery UI对话框中更新单个元素?,jquery,jquery-ui,Jquery,Jquery Ui,我正在创建一个对话框来显示长时间运行的进程的状态。基本上,我希望创建对话框,并在长时间运行的进程执行时更新内容。我对jQuery/jQuery UI还是相当陌生的,所以我可能在做一些愚蠢的事情,但我不明白为什么以下内容不起作用: function updateStatus() { $('#status').html("Interval status!"); $('#message').html("message status!"); } ... var $updateDi

我正在创建一个对话框来显示长时间运行的进程的状态。基本上,我希望创建对话框,并在长时间运行的进程执行时更新内容。我对jQuery/jQuery UI还是相当陌生的,所以我可能在做一些愚蠢的事情,但我不明白为什么以下内容不起作用:


function updateStatus() {
    $('#status').html("Interval status!");
    $('#message').html("message status!");
}
...
   var $updateDialog = $('<div id="updateDialog"></div>')
        .html('<table><tr><td id="status">Status goes here ...</td></tr> <tr><td></td></tr> <tr><td id="message">Message goes here ...</td></tr> </table>')
        .dialog({
            title: 'Update Progress',
            modal: 'true',
            buttons: { "OK" : function() { 
                                  $(this).dialog("close");
                                  clearInterval(interval);
                              }
                     }
        });
        interval = setInterval(updateStatus, 1000);

函数updateStatus(){
$('#status').html(“间隔状态!”);
$('#message').html(“message status!”);
}
...
变量$updateDialog=$('')
.html('状态显示在此处…消息显示在此处…')
.对话({
标题:“更新进度”,
情态:'真',
按钮:{“确定”:函数(){
$(此).dialog(“关闭”);
间隔时间;
}
}
});
间隔=设置间隔(updateStatus,1000);
调用updateStatus时,我希望看到元素更新为新值,但内容没有更改。如果我执行类似$('#status').html()的操作并将其写入控制台,则表明它已更改;但更改在对话框中不可见

但是,如果完全替换对话框的整个html(),则对话框的内容是可见的


    $('#updateDialog').html('<table><tr><td id="status">Interval Status ...</td></tr> <tr><td></td></tr> <tr><td id="message">Interval message ...</td></tr> </table>')

$('#updateDialog').html('间隔状态…间隔消息…'))

如果可以的话,我宁愿使用更“外科手术式”的方法来更新单个元素。有人能告诉我这里缺少什么吗?

这是因为您实际上没有将表添加到DOM中。您将其添加为DIV的html(),我认为这实际上是两码事。创建div后,应将其附加到DOM(例如$('body').append(whatever)),然后应以相同的方式将表附加到'whatever'中


那么它应该会起作用。

谢谢你的帮助!实际上,我只是将内容放在.html文件中的一个隐藏div中,但是您提供了拼图中缺少的部分,现在它非常有意义。