重複の可能性:
選択した要素の外側の HTML を取得する
jQueryでは、現在これを使用してHTMLを取得しています:
var content = $("tr#add-ingredients-over-here").html();
しかし、実際にはtr
、選択した HTML にそれを含める必要があります。これを行う方法がわかりません。また、後でそれを他の HTML に置き換える必要があります。
これを行う方法に関する提案はありますか?
重複の可能性:
選択した要素の外側の HTML を取得する
jQueryでは、現在これを使用してHTMLを取得しています:
var content = $("tr#add-ingredients-over-here").html();
しかし、実際にはtr
、選択した HTML にそれを含める必要があります。これを行う方法がわかりません。また、後でそれを他の HTML に置き換える必要があります。
これを行う方法に関する提案はありますか?
あなたが探しているのは要素のouterHTMLです。あなたはこれを試すことができます:
var content = $("#add-ingredients-over-here")[0].outerHTML;
これは、現在のすべてのブラウザでサポートされています。Firefoxは、Firefox 11(2012年3月)でこれをサポートする最後の機能です。他のすべてのブラウザは、少なくとも4年間はすでにこれをサポートしています。このstackoverflowスレッドよりも古いブラウザをサポートする必要がある場合は、どこでも機能するjQueryベースの実装があります。
jQuery.fn.outerHTML = function() {
return $(this).length > 0 ? $(this).clone().wrap('<div />').parent().html() : '';
};
もう1つの完全なクロスブラウザアプローチ。tbodyのクローンを作成し、必要な行を除くすべてを削除して、そこからhtmlを取得します
var content = $("#add-ingredients-over-here")
.parent().clone().find('tr:not(#add-ingredients-over-here)').remove()
.end().html()
clone()
編集:あなたが全体を必要とするのになぜあなたはただ使うことができないのですTR
か?クローンはjQueryオブジェクトとして別のテーブルに挿入できます
/*copy whole row to another table*/
$('#otherTable').append( $("#add-ingredients-over-here").clone() );
試す
$("tr#add-ingredients-over-here").parent().html();
最初に親を取得してから、そのHTMLコンテンツを返します