在按钮onClick上选择Jquery行

时间:2013-07-10 08:58:20

标签: javascript jquery html html-table

我有一个表(表的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或类似的东西,按钮是否知道他的祖先并得到给定的对象?

我将不胜感激。

3 个答案:

答案 0 :(得分:2)

您可以使用closest()获取单击按钮的父级tr。

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

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

答案 1 :(得分:1)

您可以使用:

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

OR

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

.closest()会给你最接近按钮的tr,而.parent()将返回父元素(td),并且它的父元素将再次返回该行

答案 2 :(得分:1)

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

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