在表中查找特定行

时间:2014-02-09 03:19:31

标签: javascript jquery

我有一个HTML表,它包含两个级别的行,例如:

enter image description here

我在第一级的每一行都有一个按钮,它执行JavaScript函数,并将按钮传递给函数

onclick="js:BillingAddNewChildLine(this);"

我需要一种方法来查找函数内部(BillingAddNewChildLine)单击该按钮的第一级行下的最后一个第二级行:

  • 如果我点击第1行的按钮,我应该获得第1.2行
  • 如果我点击第2行的按钮,我应该获得第2.2行

这个选择器将返回表的最后一行,有没有办法使用jQuery选择器来获得我需要的东西?

$(".BillingTable > tbody tr:last") 
非常感谢

3 个答案:

答案 0 :(得分:1)

如果为所有父级(第1级)行提供“父级”类,则可能更容易实现所需的内容。

<tr class="parent">
    <td>1</td>
    <td><button>Get Last Child</button></td>
    <td>Description</td>
</tr>
<tr>
    <td>1.1</td>
    <td></td>
    <td>Description</td>
</tr>

然后在按钮的onclick事件中,您可以使用以下命令获取最终子项(或第二级行,在您的示例中为1.2和2.2):

$(this).closest('tr').nextUntil('.parent').last();

(可以使用inserAfterafter方法添加新行,请参阅随附的小提琴)

DEMO

答案 1 :(得分:0)

我假设您正在动态创建表,但即使您不是,也可以为每个相同级别的行提供类似

的类
<tr class="level-1">
   <td>
       <button class="btn" data-level="level-1"></button>
   </td>
</tr>
<tr class="level-1">
   <td></td>
</tr>
<tr class="level-2">
   <td>
       <button class="btn" data-level="level-2"></button>
   </td>
</tr>

然后

$('btn').click(function(){
   var level = $(this).attr('data-level');
   var row = row.last();
});

答案 2 :(得分:0)

你正在寻找类似的东西吗?

jsfiddle demo

$('td').live('click', function(){
    tempval=parseInt($(this).html());
    newval=tempval+1;

    $(this).parents('table').append('<tr><td class="valuePlace">'+ newval +'</td><td>hi</td></tr>');
})