替换为使用jQuery

时间:2013-02-26 13:28:15

标签: jquery html

我在这里做一个懒惰的表格转置。 我有一张这样的桌子:

     <table>
     <th style="text-align: left; text-transform: capitalize;">Unique</th>
     <th style="text-align: left; text-transform: capitalize;">x1</th>
     <th style="text-align: left; text-transform: capitalize;">y2</th>
     <tr class="rowNormal">
     <td nowrap="true">a1</td>
     <td nowrap="true">b2</td>
     <td nowrap="true">b3</td>
     </tr>
     </table>

我需要看起来像这样:

     <table>
     <tr class="rowNormal">
     <tr><td nowrap="true">a1</td><.tr>
     <tr><td nowrap="true">b2</td></tr>
     <tr><td nowrap="true">b3</td></tr>
     </tr>
     </table>

它只有两行,其中一行是标题。 所以我隐藏了这样的标题:

        $("table:contains('Unique')").find("th").addClass("hidden");

哪个工作正常。现在我需要为每个<tr>添加<td nowrap="true">,这里我遇到了麻烦。我用这个:

       $('div.content').html($('div.content').html().replace(/<td nowrap="true">/g,' <tr><td nowrap="true">'));

有效,但我想将其缩小到包含“Unique”的表,而不使用global。 此

       $('div.content').html($('div.content').html().replace(/</td>/g,'<td></tr>'));

根本不起作用。我尝试使用replaceWithreplaceAll,但未能成功。 问题: 1)添加格式以将剩余行转换为列的最佳方法是什么? 2)如何指定"/作为参数? 3)'"之间有什么区别?

感谢您的时间。

1 个答案:

答案 0 :(得分:4)

您可以在jQuery中使用wrap来执行此操作:

$("td[nowrap='true']").wrap("tr");

或仅适用于包含唯一包含选择器的项目:

$("table:contains('Unique') td[nowrap='true']").wrap("tr");