0

我有一个标准表:

我想使用 jQuery 重新格式化表格,更具体地说,我想添加一个关闭 tr 并在第一个 td 的 tbody 中打开一个新 tr ..

我可以用下面的jquery定位它,并且插入了html但是以错误的方式..

$('</tr><tr>').insertAfter('.table thead tr td:first-child');

新标记的顺序错误......任何帮助将不胜感激。

<tr></tr> <--wrong!

我需要它是:

</tr><tr>

我错过了什么吗?

<table>
    <thead>
        <tr>
           <td>1</td>
           <td>2</td>
           <td>3</td>
           <td>4</td>
           <td>5</td>
           <td>6</td>
        </tr>
    </thead>
    <tbody>
        <tr>
           <td>1</td>
           <td>2</td>
           <td>3</td>
           <td>4</td>
           <td>5</td>
           <td>6</td>
        </tr>
        <tr>
           <td>1</td>
           <td>2</td>
           <td>3</td>
           <td>4</td>
           <td>5</td>
           <td>6</td>
        </tr>
        <tr>
           <td>1</td>
           <td>2</td>
           <td>3</td>
           <td>4</td>
           <td>5</td>
           <td>6</td>
        </tr>
    </tbody>
</table>
4

2 回答 2

1

jQuery 和 JavaScript 通常创建和操作有效的 DOM 元素/节点;它不会在 HTML 中插入字符串(尽管您可以使用.html()/innerHTML方法来执行此操作,尽管存在一些潜在的解析困难)。如果要在 中插入新行thead,则只需:

$('<tr />').insertAfter('thead tr:last');

我不确定你为什么要插入一个字符串而不是一个新的节点/元素。如果您使用有关您尝试做什么的更具体信息更新您的问题,我将使用更好的解决方案(如果可能)更新我的答案。

于 2012-06-12T11:29:48.760 回答
0

您正在将 tr 转换为 jquery dom 元素。这不能让你这样做。它始终保持标签的打开和关闭顺序。

您必须通过获取表的第一个 Tr 的 HTML 来进行字符串操作

var html = ('.table thead tr:first-child').html();
于 2012-06-12T11:19:09.637 回答