【jquery】ajaxでbody直下の要素を取得

表題のとおりの内容。
備忘録的な記事です。

先日↓リンク先と同じような事が起こって半日ぐらいハマってました。

【W3Q】ID:qzztmB.t/Da9さんの質問

ajaxについてです
.done( data ){
alert( $( data ).find( ’#hoge’ ).html() );
}

これで、結果がundefinedになっちゃうんですけど、違うところでも同じことをしているのです。。
違いが分からず。

これが.filterだと動いたりするんですよね

要するにbodyの直下のhtmlがほしいんです。
$( data ).find( ’body’ ).html()
こんなイメージなんです。

どなたか見当付く方、回答よろしくお願いします。

とのこと。
解答はそれなりに集まっているのですが、どれも解決には至ってないようで、
ほかに検索してもbody直下の要素について書かれている記事が見つからぬ。。。
てことで、半日ぐらいゴニョゴニョやったあげく自分はこうやって乗り切りました。

↓HTML

<html>
	<head>
		<title>test</title>
	</head>
	<body>
		<div id="aaa">あああ</div>

		<div id="bbb">びびび</div>
	</body>
</html>

↓jquery

$.ajax({
		url: 'GET先の…先っちょのURL…い、挿れて…',
		dataType: 'html',
		type: 'GET'
	}).done(function(data){ //読み込み後の処理

		split_data = data.split('</head>');//headはポイーします

		hoge = '
' + split_data[1] + '
'; data_hoge = $(hoge);//これでいつものjqueryオブジェクトになります。 data_html = data_hoge.html();//まるごと取り出したいときはこうでok bbb_html = data_hoge.find("#bbb").html();//id="bbb"の中身だけで良ければこう }).fail(function(){ //読み込み失敗の処理 alert('読み込み失敗!だよん!☆'); });

.doneの中身だけ見ていただければ分かるかと思います。
W3Qでの解答が締め切られていたのでこのブログに書きましたが、
出来ればID:qzztmB.t/Da9さんに届くといいなぁ。
もっとスマートな方法があれは、ぜひ教えてください!!!

関連記事

コメント