该代码不仅更改了 JQuery 版本。ajax 调用的简化版本是:
$.ajax(
{
type: 'GET',
url: MapPath($(this).attr('path')),
cache: false,
data: '{}',
dataType: 'html',
success: function (result) {
console.log(result);
if ($(result).filter('#feedback').length > 0) {
$('#center').children(':first').before($(result).filter('#feedback').outerHTML());
}
else {
$('#feedback').remove();
$('#dialog').html(result);
$('#dialog').dialog('option', 'title', 'Edit Mailbox');
$('#dialog').dialog('open');
}
}
});
就在 if 语句之前,我记录了结果。它按预期显示这是一个格式正确的 HTML 片段。片段意味着它包含一个带有子元素的 DIV。当我在 if 语句中使用选择器时,出现错误:
throw Error("Syntax error, unrecognized expression:
我可以使用控制台查看结果的内容,如果我尝试任何选择器,我会收到错误消息。如果我只是使用,我什至会收到错误:
$(result)
但是,如果我修改结果并预先<html><body>
添加和附加,</body></html>
那么它可以正常工作。是什么改变了 JQuery 来打破这个问题,我该如何解决?结果需要是一个 HTML 片段,因为我将页面上的容器设置为该值。