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

jqueryパーサーが認識できない奇妙なコードシーケンスがhtml文字列にある可能性があるためだと思います。取得元のページは 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 に答える