我知道这个问题已被问过很多,但我找不到确切的答案.这是我的代码.基本上我已经完成了所有设置.我只是迷失在哪里通过索引获取表的行.我已经尝试过.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)
这可能不是最好的方法.
代替
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)