1

次のような簡単なコードがあります。

$('#tblPrice').replaceWith( $('#tblPrice').html()
   .replace(/<tbody/gi, "<div id='table'")
   .replace(/<tr/gi, "<div")
   .replace(/<\/tr>/gi, "</div>")
   .replace(/<td/gi, "<span")
   .replace(/<\/td>/gi, "</span>")
   .replace(/<\/tbody/gi, "<\/div")
   );

の ID を持つ複数のテーブルがありtblPriceます。一度に 1 つのテーブルのみを置換するため、これを.each function ()

4

5 に答える 5

0

jquery に置き換える代わりに、テーブルのスタイルを変更できます。その子要素は、div や span のように動作します。

例えば、

table, tr, tbody{
    display: block;  /* div */
    /* other css styles */
}

td{
    display: inline; /* span */
    /* other css styles */
}

もちろん、これはテーブル要素を完全に変更するわけではありませんが、実際に達成しようとしていることに役立つ場合があります。

于 2013-10-22T11:52:54.230 に答える
0

すべてのテーブルでクラス属性を取得し、以下のコードを配置するだけです:-

$('.tblPrice').each(function() {
    var $this = $(this);
    $this.replaceWith($this.html() ... );
});
于 2013-10-22T11:45:17.210 に答える
0

IDは DOM 内で一意である必要があります。ここでメソッドを使用しても、.each常に最初の要素のみを ID とともに取得します。

代わりにクラスを使用し、それらをすべてのテーブルに追加してmyTable、コードを次のように変更することをお勧めします。

$('.myTable').replaceWith(function () {
    return $(this).html()
        .replace(/<tbody/gi, "<div id='table'")
        .replace(/<tr/gi, "<div")
        .replace(/<\/tr>/gi, "</div>")
        .replace(/<td/gi, "<span")
        .replace(/<\/td>/gi, "</span>")
        .replace(/<\/tbody/gi, "<\/div");
});
于 2013-10-22T11:45:56.627 に答える