2012-01-18 6 views
5

基本的には、div内のページにいくつかのコンテンツをラップしたいと思います。iframeをリフレッシュせずにDivのコンテンツをjavascriptでラップする

私はjQueryのwrap関数を使用してこれを行うことができますが、私の問題は、広告を含むコンテンツにいくつかのiframeがあり、iframeを更新するコンテンツをラップするときです。

これは私の言うことは、舞台裏では新しいコンテンツにラップするコンテンツを複製しているからです。

HTML

<div class="content"> 
    <iframe src="http://something.com/ads"></iframe> 
</div> 

JS

$(content).wrap('awesome_container');

理想的には私はその後ちょうどコンテンツのdivの前にいくつかのオープンdivタグ内のスロットと、いくつかの近くのdivタグたいが、私がすることはできません近いタグを付けずにページにdivを追加するようです。

誰もがこの問題を回避する方法を知っていますか?

乾杯

+0

可能性のある重複した、全く受け入れ答えがないにもかかわらず:http://stackoverflow.com/questions/4397270/jquery-wrap-without-refresh 。また、これは報告されたバグです。 Firefoxの問題であると思われる:http://bugs.jquery.com/ticket/7020 – JSuar

答えて

2

、あなたはjQueryのデタッチを使用して、所望の結果を得ることができるかどうかを確認() これはまた、あなたがまだにこの要素とその子に関連付けられているものは何でもイベントできるようになりますが後で機能する。 iFrameオブジェクトを強制終了する代わりに保持するだけで十分です。

var orphan = $(selector).detach() 
someParent.html(orphan); 

ことができますなら、私を知ってみましょう:)

+0

これは本当に奇妙だ。時間の80%は完全に機能しているようだ。奇妙な行動の他の20%が私のページ設定になる可能性があります。 ありがとう – Marklar

0

私はwrapは内部のiframeが更新されるので、その容器に渡さにマークアップを設定するhtmlメソッドを使用していますね。 appendメソッドを使用すると、iframeがリフレッシュされません。要素をある場所から別の場所に移動するだけなので、リフレッシュしません。あなたの素晴らしいcontianerを作成し、このコンテナ内にcontent divを追加してみてください。代わりにHTMLを削除するか、そのコピーを作成する

$('.content').before("<div id='awesome_container' />"); 

$('#awesome_container').append($('.content')); 
+0

append関数と同じ問題 – Marklar

関連する問題