2011-08-05 5 views
5

私はこれを行うことができます。 innerHTMLではなく要素全体を置き換えますか?

$('my-panel').innerHTML = '<p> New content </p>'; 

しかし、もし

が、私はどのような方法を見つけることができません

$('my-panel').wholeHTML = "<div id='my-panel'><p> New Content</p></div>"; 

ような何かをすることのいずれかの方法。私がこのようなことをすることができないなら、私は時間を費やすことになるたくさんのものをリファクタリングする必要があります。 '全体' タグが含まouterHTMLについて何、

答えて

6

:あなたは常にあなたがMooToolsのを使用してタグのparentNodeを取得し、彼のinnerHTMLの

  $('my-panel').parentNode.innerHTML = '<p> New Content</p>' 
+0

ええ、それはうまく機能しました。本当にありがとうと思いました。このようなもののどこかにAPIリストがありますか?私が見ていたページは、outerHTMLを参照していません。 – Oliver

+0

@Oliver:MDN(奇妙なもの)についてはわかりませんが、MSDNには良いリファレンスがあります。http://msdn.microsoft.com/en-us/library/ms534310(v=vs.85).aspx – pimvdb

+0

少しばかり見ていますが、.outerHTMLは標準ではなく、一部のブラウザでは動作しません。 – Oliver

1

を、右?要素を簡単に置き換えることができます。すなわち、

Elements.from("<div id='my-panel'><p> New Content</p></div>").replaces($("my-panel")); 
+2

親要素の子がさらに多い場合を除いて、それはうまくいくでしょう。その場合、それらは破壊されます。 – pimvdb

+0

これは私がそれを変更する前にコードがしていたものでした。元の作家は、その目的のためだけに余分なdivを導入することで問題を回避しましたが、そのようなことをするのは嫌です。 – Oliver

2

を置き換えることができます

$('my-panel').outerHTML = '<p> New content </p>'; 

http://jsfiddle.net/pimvdb/Sah2U/1/

+0

うわー、それは便利です。私はそれを将来行うつもりです。 – Oliver

+0

それはクロスブラウザです:) – stecb

関連する問題