重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

jQueryを使用していて困っています。

下記の様なHTMLがある場合に

<div id="hoge">
  <div id="first">hoge</div>
  <div id="second">hogehoge</div>
  <div id="third">hogehogehoge</div>
</div>

“<div id="second">hogehoge</div>”を取得したいです。

$("#second").html()では、
  hogehoge
が取得されることになりますし、

$("#hoge").html()では、
  <div id="first">hoge</div><div id="second">hogehoge</div><div id="third">hogehogehoge</div>
が取得されることになると思います。

$("#second").wrap("<div class='target'></div>")して、
$(".target").html()を取得しても良いのですが、
他のところで影響がでそうで怖いので、できれば避けたいです。
(殆ど完成状態にありますので……)

何か良い方法はありますでしょうか?

A 回答 (2件)

例えば、



$('<div>').append($('#second').clone()).html()

で、どうでしょう?.clone()を使ってコピーを作り、それを「入れ物」にいれてから.html()で中身を取得する、という方法です。
    • good
    • 0
この回答へのお礼

なるほど!!
確かにそれならいけますね!!

助かりましたありがとうございます!!

お礼日時:2011/01/28 22:29

ゴメンなさい。

私も詳しくないので(勉強中なので)具体的な記述がわかりませんが、
:nth-child(2)を使えばできるのではないでしょうか。(1から始まる要素数)

また、
:eq(1)でもいいみたいです。(0から始まる要素数)

参考URL:http://semooh.jp/jquery/api/selectors/:nth-child/
    • good
    • 0
この回答へのお礼

ありがとうございます。
少し方向がずれた回答ですね。

実は、今となっては、outerHTML使えば良いんじゃね?と思いましたwww

お礼日時:2012/06/12 18:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!