A.htmlの中で、B.htmlを、jQueryを使って読み込みました($.getを使用した)。

その読み込んだB.htmlには、<div id="mainContents">で始まり、<!--/mainContents--></div> で終わる文字列が含まれています。
その<div id="mainContents">と<!--/mainContents--></div>に括られた範囲の文字列をJavascriptで取り出して、A.htmlの<div id="mainContents"></div>の中に挿入たいのですが、どのようにすればよいでしょうか。

Javascriptのコードを提示していただけると非常に助かります。

なお、当初はjQueryの「$().load」を使用してB.htmlを読み込んでいたのですが、別のJavascriptライブラリと衝突して上手く動作しないことが判明し、やむなく$.getを使用しています。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/11/20 18:52:45
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mars No.1

回答回数203ベストアンサー獲得回数20

ポイント100pt

もうちょっとスマートな方法もありそうだけどとりあえず。

$.get('B.html',
  function(text){
    $('#mainContents').html(text.split(/<div id="mainContents">|<!--\/mainContents--><\/div>/)[1]);
  }
);
id:ishimarum

ご回答ありがとうございました。

ご提示いただいたコードを実行してみたところ、B.htmlのDIV#mainContentsより後の文字列がA.htmlのDIV#mainContentsに挿入されてしまいました。A.htmlのDIV#mainContents内に挿入したいのは、B.htmlのDIV#mainContentsの中身なのです。

ただ、それ以外は期待した通りの動作のようで希望が持てました。おそらく、text.splitの正規表現(?)を上手くすればいいのだろうと推測してみましたが、正規表現には詳しくなく、更にご教授いただけると幸いです。

よろしくお願いします。

2007/11/20 16:40:22

その他の回答1件)

id:Mars No.1

回答回数203ベストアンサー獲得回数20ここでベストアンサー

ポイント100pt

もうちょっとスマートな方法もありそうだけどとりあえず。

$.get('B.html',
  function(text){
    $('#mainContents').html(text.split(/<div id="mainContents">|<!--\/mainContents--><\/div>/)[1]);
  }
);
id:ishimarum

ご回答ありがとうございました。

ご提示いただいたコードを実行してみたところ、B.htmlのDIV#mainContentsより後の文字列がA.htmlのDIV#mainContentsに挿入されてしまいました。A.htmlのDIV#mainContents内に挿入したいのは、B.htmlのDIV#mainContentsの中身なのです。

ただ、それ以外は期待した通りの動作のようで希望が持てました。おそらく、text.splitの正規表現(?)を上手くすればいいのだろうと推測してみましたが、正規表現には詳しくなく、更にご教授いただけると幸いです。

よろしくお願いします。

2007/11/20 16:40:22
id:Mars No.2

回答回数203ベストアンサー獲得回数20

ポイント100pt

中身以外に後ろ「も」挿入されてしまったんですよね?

htmlとしてではなく、テキストとして区切りを探しているので

<div id="mainContents"> ←この行と
<!--/mainContents--></div> ←この行に

htmlではどうでもいいはずの改行や空白が含まれているとうまく動きません。

B.htmlの終わりのコメントと閉じdivの間で改行しているようなら改行せずに書いてください。

id:ishimarum

ご回答ありがとうございました。

おかげさまで解決いたしました!

2007/11/20 18:50:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません