使用多重选择器来获取最后一个<td>
具有行跨度的选择器table td[rowspan]:last
,然后<td>
使用最后一行中的两个 stable tr:last td
$('table td[rowspan]:last, table tr:last td').addClass('last');
根据您在http://jsfiddle.net/qEhng/中的示例,您可以使用 td[rowspan] 找到最大行索引,然后像这样在其上设置类。效率不是很高,但它只会将.last
类分配给<td>
具有最高行索引上的行跨度的 s。如果您只想分配.last
到倒数第二行,您可以添加额外的逻辑来检查行索引,但是如果您的行跨度大于 2,这将变得很棘手......
$('table tr:last td').addClass('last');
var maxRow = 0;
$('table td[rowspan]').each(function(){
var row = $(this).parent().parent().children().index($(this).parent());
if (row>maxRow) maxRow=row;
});
$('table td[rowspan]').each(function(){
var row = $(this).parent().parent().children().index($(this).parent());
if (row==maxRow) $(this).addClass('last');
});
这是仅将.last
类添加到具有流到最后一行的最大行跨度的 td 的代码 - http://jsfiddle.net/qEhng/5/
$('table tr:last td').addClass('last');
var maxRow = 0;
var rowSpan = 0;
$('table td[rowspan]').each(function(){
var row = $(this).parent().parent().children().index($(this).parent());
if (row>maxRow){
maxRow=row;
rowSpan=0;
}
if ($(this).attr('rowspan')>rowSpan) rowSpan = $(this).attr('rowspan');
});
if (maxRow==$('table tr:last td').parent().parent().children().index($('table tr:last td').parent())-(rowSpan-1)){
$('table td[rowspan]').each(function(){
var row = $(this).parent().parent().children().index($(this).parent());
if (row==maxRow && $(this).attr('rowspan')==rowSpan) $(this).addClass('last');
});
}
如果您想要所有触及最后一行的行(通过或不通过行跨度),那么以下代码将起作用(请参阅http://jsfiddle.net/zL6Pe/)
$('table tr:last td').addClass('last');
var rows = $('table tr:last').parent().children().length;
$('table td[rowspan]').each(function(){
if ($(this).parent().parent().children().index($(this).parent())+parseInt($(this).attr('rowspan'))==rows) $(this).addClass('last');
});