jQuery を使用して、選択したオブジェクトの HTML を取得しようとしています。関数については認識していますが、問題は、選択したオブジェクト (この場合はテーブル行で、行内のセルのみが返されます).html()
を含む HTML が必要なことです。.html()
検索してみたところ、オブジェクトのクローンを作成し、それを新しく作成した div に追加するなど、非常に「ハックっぽい」タイプの方法をいくつか見つけましたが、これは本当に汚いようです。もっと良い方法はあるのでしょうか、それとも jQuery の新しいバージョン (1.4.2) には何らかのouterHtml
機能があるのでしょうか?
ベストアンサー1
現在 (2012 年 5 月 1 日)、すべての主要ブラウザが outerHTML 関数をサポートしていると思います。このスニペットで十分だと思います。個人的には、これを覚えておくことをお勧めします。
// Gives you the DOM element without the outside wrapper you want
$('.classSelector').html()
// Gives you the outside wrapper as well only for the first element
$('.classSelector')[0].outerHTML
// Gives you the outer HTML for all the selected elements
var html = '';
$('.classSelector').each(function () {
html += this.outerHTML;
});
//Or if you need a one liner for the previous code
$('.classSelector').get().map(function(v){return v.outerHTML}).join('');
編集:基本的なサポート統計のためにelement.outerHTML
- Firefox (Gecko): 11 ....2012-03-13 リリース
- クローム: 0.2 ...............2008-09-02 リリース
- インターネット エクスプローラー 4.0...1997年発売
- オペラ7 .............................2003-01-28 リリース
- サファリ 1.3 ...............2006-01-12 リリース