在现有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>
答案 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
是表格中0
到n-1
行的数字)并在之后添加行任何现有的行。
答案 5 :(得分:0)
你问题的答案(字面意思)是:
$("table#test tr:contains('1'").after('<tr>xx</tr>');
这意味着:在ID为“test”的表格中包含“1”的<tr>
之后添加“xx”。
我想这不完全是你需要的,你能告诉我们你到底想做什么吗?
有多种方法可以向元素添加内容。我建议您查看jQuery文档,尤其是DOM Insertion, Around,DOM Insertion, Inside和DOM Insertion, Outside。