转换选择表行

Dre*_*w H 1 javascript jquery

我知道这个问题已被问过很多,但我找不到确切的答案.这是我的代码.基本上我已经完成了所有设置.我只是迷失在哪里通过索引获取表的行.我已经尝试过.index函数,但我没有用.我正在尝试做类似的事情$('#pkgLineTable').index(i).addClass('row_selected');

但那不能正常工作.任何帮助都会很棒.非常感谢你.

var lastSelected;

$('#pkgLineTable tr').live('click', function(event) {         

    var tableRow = $(this).closest("tr").prevAll("tr").length + 1;      
    if ($(this).hasClass('row_selected')) {
        $(this).removeClass('row_selected');       
    }
    else {           
        $(this).addClass('row_selected');         
    } 

    if (event.shiftKey) { 
        var table = $('#pkgLineTable');        


        var start = Math.min(tableRow, lastSelected);
        var end = Math.max(tableRow, lastSelected);                 

        for (var i = start; i < end; i++) {
            //$(this).parent().parent().addClass('row_selected'); 
        }

    } else {        

        lastSelected = $(this).closest("tr").prevAll("tr").length + 1;
    }
Run Code Online (Sandbox Code Playgroud)

我的开始和结束值都是正确的.如果选择2行和5行,则返回2和5.然后迭代2 - 5.我需要向行2 - 5添加一个类.

编辑我用过这个:

    for (var i = start; i < end; i++) {
            $('#pkgLineTable').each(function() {
                $(this).find("tr").eq(i).addClass('row_selected');    
            });
        }
Run Code Online (Sandbox Code Playgroud)

这可能不是最好的方法.

dev*_*att 5

代替

for (var i = start; i < end; i++) {
  //$(this).parent().parent().addClass('row_selected'); 
}
Run Code Online (Sandbox Code Playgroud)

使用

table.find('tr:gt('+(start-1)+'):lt('+(end)+')').addClass('row_selected');
Run Code Online (Sandbox Code Playgroud)