如何在Jquery或Javascript中搜索和删除/追加行?

如何在Jquery或Javascript中搜索和删除/追加行?,javascript,jquery,html,Javascript,Jquery,Html,如果我有桌子 <table id="myTable"><tr><td>First Thing</td><td>First Value</td></tr> <tr><td>Second Thing</td><td>Second Value</td></tr> <tr><td>Third Thing</td>&

如果我有桌子

<table id="myTable"><tr><td>First Thing</td><td>First Value</td></tr>
<tr><td>Second Thing</td><td>Second Value</td></tr>
<tr><td>Third Thing</td><td>Third Value</td></tr>
</table>
如何使用JQuery或javascript进行搜索,以获取具有文本秒值的行的索引并将其删除?也可以创建一个新行吗

<tr><td>Fourth Thing</td><td>Fourth Value</td></tr>

点击一个按钮?我是否需要遍历现有行以获取要插入的行的最后一个索引?

您可以使用:contains选择器、remove函数和append函数轻松实现这一点。您不需要遍历这些行来查找您要查找的内容

要获取索引,请执行以下操作:

$("#myTable").find("td:contains('Second Value')").parent().index();
要删除它,请执行以下操作:

$("#myTable").find("td:contains('Second Value')").parent().remove();
要添加行,请执行以下操作:

$("#myTable").append("<tr><td>Fourth Thing</td><td>Fourth Value</td></tr>");

工作示例:

理想情况下,您应该为每个tr/td生成id,但我认为,如果您动态地获取数据,就应该这样做

如果您知道表的顺序,那么可以使用jQuery中的这些Sleector

$('tr:last-child').html('<p>This is the absolouty last tr in the WHOLE page<p>')

$('tr:nth-child(even)').addClass('evenColors')

$('tr:nth-child(4n)').remove()  //Removes the 4th from the top TR DOM Element

var theValueOf = $('tr:first-child').html() //assigns the innerHtml to your var
因此,如果有10个表,每个表都应该有一个id或类

 <table id="table1"> ...bla... </table>

$('table1 tr:last-child').remove() //Remove last TR from Table1
您将需要更多地使用id和类来构造html

在您的情况下,您必须以编程的方式重新构造表,为每一行分配唯一的ID,然后使用jquery来选择它。这是理想的世界 但是你做一个循环,检查每个内部html,直到你想要什么,然后做一个.remove


但要获得索引,请使用猎人回复!但根据经验,这对于大型动态文档来说是一个头疼的问题。

JQuery有.insertAfter和insertBefore。对于目标,您还可以使用第n个子css选择器,或者如果您希望它是动态的,比如在他们单击的行之后插入一行,您可以使用“this”操作符和一些dom导航。所有这些都表明,在动态编辑表时要非常小心,它们在插入内容的位置上有一些特殊性,并且对性能影响很大

我就这么做了; 要添加行,您可能不想使用append,因为您的表可能有tbody等:

$('#myTable tr:last').after('<tr id="forth_row"><td>forth thing</td><td>forth value</td></tr>');}

似乎有无数的组合。最好是浏览jQuery文档。在页面上,在jQuery上使用IE调试器F12在脚本中放置断点,并在$jQuery中添加一个手表;尝试探索节点并查看它们的值。
$('#myTable').find("#forth_row").remove();