用于在HTML表行之间添加行的Jquery语法

时间:2012-01-24 14:34:51

标签: jquery html html-table row

在现有HTML表行之间添加行的jQuery语法是什么?

<Table id="TEST"> <tr>1</tr> <tr>2</tr> </table> 

我想添加

<tr>xx</tr> 

介于1和2之间

例如:

<tr>1</tr>   **<tr>xx</tr>** <tr>2</tr>

请注意,此处没有行ID。

纠正最终外观

<table id=Test><tr> <td>1 </td> </tr><tr> <td>2 </td> </tr></table>

 <table id=Test><tr> <td>1 </td> </tr>  <tr> <td>xx </td> </tr> <tr> <td>2 </td></tr></table>

6 个答案:

答案 0 :(得分:5)

这样的事情:

$('#TEST > tbody > tr').eq(0).after('<tr>xx</tr>');

答案 1 :(得分:0)

$('#TEST tr:gt(0)').after('<tr>xx</tr>');

gt代表大于。请注意,行的索引从0开始,而不是1。

答案 2 :(得分:0)

特别是为了浏览器之间的一致性,您应该将所有tr包装在tbody元素中。然后你可以after()/insertAfter()新行(在第一行之后)或before()/insertBefore()行(在最新行之前)。

http://api.jquery.com/after/
http://api.jquery.com/before/
http://api.jquery.com/insertAfter/
http://api.jquery.com/insertBefore/

的例子 insertAfter:$('<tr>xx</tr>').insertAfter($('tr:first'));
之后:$('tr:first').after('<tr>xx</tr>');

答案 3 :(得分:0)

假设您正在寻找在第一个现有行之后插入新行的方法(并且您没有寻找将其插入现有行内容所描述的位置的方法),您可以使用{{3插入内容,after将匹配元素集合减少到所需索引的元素:

$("#TEST tr").eq(0).after("<tr><td>x</td></tr>");

请注意,我添加了td元素,因为将文本节点作为tr元素的子元素无效。

使用jQuery选择“first”元素的各种方法也值得注意。在这个问题的5个答案中,我们看到了3种不同的方法,甚至还有更多。使用eq

答案 4 :(得分:0)

$('#test tr').first().append('<tr>xx</tr>');

您可以将first()替换为eq(n)(其中n是表格中0n-1行的数字)并在之后添加行任何现有的行。

答案 5 :(得分:0)

你问题的答案(字面意思)是:

$("table#test tr:contains('1'").after('<tr>xx</tr>');

这意味着:在ID为“test”的表格中包含“1”的<tr>之后添加“xx”。

我想这不完全是你需要的,你能告诉我们你到底想做什么吗?

有多种方法可以向元素添加内容。我建议您查看jQuery文档,尤其是DOM Insertion, AroundDOM Insertion, InsideDOM Insertion, Outside