在我的jquery代码中,我使用ajax get函数来获取页面的html代码。我想从中获取某个元素,但是当我尝试这样做时,jquery会给出这个错误:
SCRIPT5022: Syntax error, unrecognized expression:
在html字符串上。
$.ajax({
url: myURL,
dataType: 'html',
success: function (data) {
g = $('#MainLeftCell', $(data)).html(); // ERROR occurs here
alert(g);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("An error occured when searching.");
}
});
我认为是因为jquery解析器无法识别的html字符串中可能存在一些奇怪的代码序列。它从中获取的页面是一个SharePoint页面。
有没有办法解决这个问题?
答案 0 :(得分:3)
您的HTML很可能无法与$()
方法一起使用。首先将其传递给$.parseHTML
。
var g = $('#MainLeftCell', $.parseHTML(data)).html();
如果它摆脱了错误但仍然不起作用,很可能#MainLeftCell
是顶级元素,你将不得不使用.filter来获取它。
var g = $($.parseHTML(data)).filter('#MainLeftCell').html();
更通用的解决方案是
var g = $("<div>").html(data).find("#MainLeftCell").html();
答案 1 :(得分:0)
你有语法错误...为什么不使用find()
..更清洁
g = $(data).find('#MainLeftCell').html();