1

重複の可能性:
選択した要素の外側の HTML を取得する

jQueryでは、現在これを使用してHTMLを取得しています:

var content = $("tr#add-ingredients-over-here").html();

しかし、実際にはtr、選択した HTML にそれを含める必要があります。これを行う方法がわかりません。また、後でそれを他の HTML に置き換える必要があります。

これを行う方法に関する提案はありますか?

4

3 に答える 3

2

あなたが探しているのは要素の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() : '';
};
于 2013-01-13T22:57:52.703 に答える
0

もう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() );
于 2013-01-13T23:05:05.430 に答える
-1

試す

$("tr#add-ingredients-over-here").parent().html();

最初に親を取得してから、そのHTMLコンテンツを返します

于 2013-01-13T22:58:10.530 に答える