W3QはBiztterに生まれ変わりました!
Web制作に関するお悩みはBiztterへどうぞ!

Biztterで質問する

ID:qzztmB さんの質問

ajaxについてです

.done( data ){
alert( $( data ).find( ’#hoge’ ).html() );
}

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

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

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

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

みんなの回答 4 件

ID:q8tb56 さんの回答

そもそもAjaxがうまくいってないか#hogeがないかのどっちかじゃね

ID:qzztmB

回答有難うございます。
ただ、alert( data ) をすると、HTML全てが返って来るのです。
それで悩んでおりました。

ID:TI6g.E さんの回答

data が単なる文字列として返って来てるからでしょ。返り値を xml としないと #hoge は find() できないよ。

ID:qzztmB

回答有難うございます。
dataType: ’xml’ に変更してみたところ、何も反応が起きなくなってしまいました。
dataType: ’html’ で問題無いですよね?

というか、$( data ).filter( ’#hoge’ ).html(); だと既に返ってきたりするんです。。
ただ、これだとbodyの中身には使えないので...
$( data ).filter( ’body’ ).html() を実行させたいのですが、これだとundefinedになってしまうのです。。

ID:qzztmB

× $( data ).filter( ’body’ ).html()
○ $( data ).find( ’body’ ).html()
です。

ID:TI6g.E

なんか色々方法あるようで、できる場合とそうでない場合があるようで。
www.koikikukan.com/archives/2013/12/05-012345.php

ID:nnFOrO さんの回答

よくわからんが、普通にXHRでやってDOMのメソッド使うのじゃダメなの?
悩む時間が無駄でしょ。

ID:qzztmB

回答有難うございます。

すいません、勉強不足でちょっと分からずです。
調べてみます、ありがとうございました。

ID:bq6f0X さんの回答

dataの中身をconsoleとかで見てるの?

ID:qzztmB

回答有難うございます。
console.logやalertで確認を行っております。
すると、dataの中身は、doctype宣言から</html>(全て)という感じなのです。
その時点でおかしい場合はもう少し考えようが有るのですが...

ID:bq6f0X

で、console.log($(data))も当然やってるんだよね?
っていうか、疑うところそこしかないでしょ。
試せることは沢山あると思うけど。

  • 返却されたhtmlがhtmlとして成立しているか(閉じミスとかない?)
  • $(data)がjqueryオブジェクトとして成立しているか
  • ダメ元で$("body",$(data)).html()とか試してみたり
  • ところで、$ajax使ってるんだよね?
ID:qzztmB

console.log( $( data ) );
これでオブジェクトが返ってきます。

そもそも、$( data ).filter( ’#hoge’ ).html()
が返って来るので、htmlとして成立しているのではと思うのです。。

はい、$.ajaxを使っています。

最終更新日:2014-10-29 (2,244 views)

関連するトピックス

ページ上部に戻る