Jquery:使用.insertAfter进行表标记操作

时间:2012-06-12 11:12:12

标签: jquery html html-table markup insertafter

我有一张标准表:

我想使用jQuery重新格式化表格,更具体地说,我想添加一个结束tr并在tbody中为第一个td打开一个新的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>

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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

var html = ('.table thead tr:first-child').html();