2

私はこのコードを持っています

success: function(data) {
 title = $(data).find('h1').text();
alert(data);
alert(title);

}

現在、データは h1 タグ付きのすべての html を表示していますが、タイトルは null を表示しています

4

2 に答える 2

2

この.find()メソッドは子孫要素を探すため、h1 要素が「最上位」レベルにある場合は見つかりません。.filter()代わりに試してください:

title = $(data).filter('h1').text();

「基本的にはh1をつかんで変数に入れ、残りのhtmlをデータ変数に入れたい」

data次のような文字列であるパラメーターを指定します。

"<h1>My heading</h1><p>This is a test</p><p>This <span>is another</span> test.</p>"

あなたはこれを行うことができます:

var $data = $(data),
    $title = $data.filter("h1"),
    title = $title.text();

$data = $data.not($title);

$title上記の結果は、h1 要素$dataを含む と残りの要素を含む の2 つの jQuery オブジェクトになります。そこから$title.text()、h1 の実際のテキストを取得するために使用できます。

簡単なデモ: http://jsfiddle.net/yyKCW/

「残りの html」を文字列$dataとして使用する場合は、上記のように設定した後、次の操作を実行できます。

var restAsString = $("<div></div>").append($data).html();

デモ: http://jsfiddle.net/yyKCW/1/

于 2012-07-30T05:04:18.587 に答える
2

データが次のようなもので構成されている場合:

<h1>heading</h1>
<p>content</p>

次に、クエリを実行する前にラップする必要があります。

var title = $('<div/>').html(data).find('h1').text();
alert(title);
于 2012-07-30T02:06:52.430 に答える