1
我知道这个问题已经被问了很多,但是我确实没有确定的答案。 这是我的代码。基本上我已经设置了一切。我只是失去了索引获取表的行的位置。我试过了.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;
}
我的开始和结束值是正确的。如果选择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');
});
}
这可能不是最好的办法。
感谢的人。我会尝试一下。检查我的编辑。我发布这个之后,我确实发现了一些东西。 – 2011-05-31 19:21:50
刚刚尝试过该代码。这是选择一个通过我点击的最后一个。我试着弄乱了代码。它工作稍微。不工作的地方,但我需要它。 – 2011-05-31 19:24:23
如果它选择比需要多1,则使用'(end-1)' – devmatt 2011-05-31 19:30:38