2

在我的 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.");
    }
});

我认为这是因为 html 字符串中可能存在 jquery 解析器无法识别的奇怪代码序列。获取它的页面是 SharePoint 页面。

有没有办法解决这个问题?

4

2 回答 2

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();
于 2013-05-10T19:19:43.543 回答
0

你有一个语法错误......你为什么不使用find()..它的清洁剂

g = $(data).find('#MainLeftCell').html();
于 2013-05-10T19:09:02.287 回答