繁体   English   中英

Jquery - 获取表中的上一个值行

[英]Jquery - Get previous value row in table

我有动态简单的表,如:
在此输入图像描述

当我点击编辑按钮时,我尝试获取前一个值单元格。

示例:当我单击第一个将发出警报的编辑按钮('a1')
当我点击第二个编辑按钮时会发出警报('a2')

我尝试着

$('.edit').click(function(){
        alert($(this).parents('tr').prev().children().eq(1).text());
});

它与第一个编辑按钮配合良好,因为上一行有一行。
而且它不能使用第二个编辑按钮。

我怎么能这样做(通过动态前一行) http://jsfiddle.net/bWjbj/

ps:我正在与下一行合作

alert($(this).parents('tr').nextAll(':eq(' + ($(this).parent().siblings().eq(0).attr("rowspan")-1) + ')').children().eq(1).text());

http://jsfiddle.net/mblase75/XGdkD/

问题是,对于第二个“编辑”按钮,前一个表行不是您想要的行 - 您希望在此之前有两行,因为这是行窗口开始的位置。

或者,通用:您希望表行属于上一个“编辑”按钮。 但是,在第一个编辑按钮的情况下,您只需要前一行。

所以,在代码中:

$('.edit').click(function () {
    var idx = $('.edit').index(this); // which Edit button is this?
    if (idx > 0) { // first button
        var $tr = $('.edit').eq(idx-1).closest('tr'); // previous row
    } else { // not first button
        var $tr = $(this).closest('tr').prev('tr'); // previous Edit button's row
    }
    var $td = $tr.find('td:nth-child(2)'); // second <td> of the row
    alert($td.text());
});

紧凑版的相同代码:

$('.edit').click(function () {
    var idx = $('.edit').index(this),
        $tr = (idx) ? $('.edit').eq(idx-1).closest('tr') : $(this).closest('tr').prev('tr'),
        $td = $tr.find('td:nth-child(2)');
    alert($td.text());
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM