人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

jQuery.ajax()で外部HTMLファイルを読み込み、要素を取得したいのですが、最上層の要素を取得することが出来ません。
・jsファイル
---------------------------------------------------------------------------
$("#button").click(function() {
$.ajax({
type: 'GET',
url: 'file.html',
dataType: 'html',
success: function (data) {
console.log($('div', $(data)));
},
});
});
---------------------------------------------------------------------------

・file.html
---------------------------------------------------------------------------
<div class="test">test</div>
---------------------------------------------------------------------------


ちなみに、以下のようにdiv.testをdivでさらに囲んでやると取得することが出来るようです。

---------------------------------------------------------------------------
<div class="wrap">
<div class="test">test</div>
</div>
---------------------------------------------------------------------------


jQueryのバージョンは1.11、ブラウザはSafari 7.05を使用しています。

どのようなスクリプトで最上層の要素を取得することができるのでしょうか?


●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー
$(function() {
 $("#button").click(function() {
 $.ajax({
 type: 'GET',
 url: 'file.html',
 dataType: 'html',
 success: function (data) {
 console.log($(data));
 },
 });
 });
});

匿名質問者さんのコメント
回答ありがとうございます。 $(data)でjQueryオブジェクトに変換した場合、ルートノードがdiv.testになってしまい、find()などで検索をかけるとルートノードの子孫の中から検索するようです。 今のところ解決策として、質問にも書いてある通りdivなどで囲んでやる(ルートノードを作る)ことでdiv.testを取得するか、 >|javascript| newDoc = document.implementation.createHTMLDocument(title); ||< みたいな感じでDocumentオブジェクトを生成して、その中にdataを入れてやることでしか対応できないのかなと思っております。 初めて人力検索を利用させて頂きまして、匿名で質問させて頂いたのですが匿名でない方がご回答を頂きやすいかなと思い、以下ページで質問し直しました。 http://q.hatena.ne.jp/1408208784
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ