0

我有一个表(表的 id 是county_table)有很多这样的行:

<tr>
<td><input class="text" type=text name=param1 maxlength=2 size=2></td>
<td><select class="text" name=param2><option value=1>Live<option value=2>Test</select></td>
<td><input class="text" type=text name=param3 ></td>
<td><input class="text" type=text name=param4 ></td>
<td><input class="text" type=text name=param5 ></td>
<td><input class="text" type=text name=param6 ></td>
<td colspan=2><input class="button" type=submit value=New onclick="function_new($('#county_table  tr:eq(1)'))"></td>
</tr>

onclick 函数会管理表格数据,并且可能会发送一个 AJAX,所以我需要获取表格的所有元素。

该解决方案的坏处是,如果我插入一个新行,整个表格行选择就会被搞砸,所以我想更改tr:eq(1),类似this.tr或类似的东西,按钮是否知道他的祖先并获得给定的目的?

我将不胜感激任何帮助。

4

3 回答 3

2

您可以使用最接近()来获取被点击按钮的父 tr 。

var trOfButton = $(this).closest('tr');

最近的描述:对于集合中的每个元素,通过测试元素本身并遍历其在 DOM 树中的祖先Reference来获取与选择器匹配的第一个元素。

于 2013-07-10T09:13:39.217 回答
1

您可以使用:

 - $(this).closest('tr');

或者

 - $(this).parent().parent();

.closest() 将为您提供最接近按钮的 tr 并且 .parent() 将返回父元素(td) 并且它的父元素将再次返回该行

于 2013-07-10T09:18:14.507 回答
1

我建议您使用$(this).parent().parent()以获得更好的性能。 http://jsperf.com/parentparentvsclosest/2

但是,如果您正在寻找代码简单性,那么您可以选择$(this).closest('tr').

于 2013-07-10T09:22:40.243 回答