1

jQuery の$.get結果からページ タイトルやその他のメタ情報を取得する必要があります。ここのどこかを読んでください (ただし、質問が見つからないようです - 申し訳ありません!) 内の要素のみを返すことを確認してbodyください。とはいえ、結果をコンソールに記録すると、タイトルとメタ タグを含む大量のデータが表示されます。

質問は簡単です-配列をナビゲートしてタイトルを引き出すにはどうすればよいですか?

これが例です。以下の例はcontentHTML オブジェクトとして返されますが、title未定義が返されます。のみbodyが返される場合は意味があります。とはいえ、ログはページ全体の HTMLを上から下にdata出力します。Loggingはページを array として出力します。そこには、ページ タイトルを持つ のエントリが表示されます。では 、 の値をどのように割り当てる必要がありますか?thiistitleinnerHTMLtitle

ご協力いただきありがとうございます!

JavaScript

$.get(target, function(data){

    var thiis   = $(data),
        content = thiis.find('#pageMain'),
        title   = thiis.find('title');

    console.log(data, thiis);
});
4

2 に答える 2

4

jQuery は、doctype、html、head、および body 要素を解析しません。GET リクエストで取得したページ全体を div の innerHTML として設定します。結果の要素のコレクションのみが返されるため、タイトル要素と pageMin の id は find() で見つけることができません。filter() を使用する必要があります。

$.get(target, function(data){
    var nodes   = $(data),
        content = nodes.filter('#pageMain'),
        title   = nodes.filter('title');
    console.log(content,title);
});

find() を使用するには、div の innerHTML をデータで設定し、その親ノードからクエリを実行する必要があります。

于 2013-07-11T19:43:18.393 に答える
1

返されたデータを最初に div でラップしてから、選択を行います。

$.get(target, function(data){
    var $wrap = $("<div></div>").append(data);
    var title = $wrap.find("title");
});
于 2013-07-11T19:38:44.073 に答える