我正在处理一个任务,需要选择整行,即使已应用了rowspan。
示例:https://jsfiddle.net/99x50s2s/91/
HTML:
<table class="table table-bordered table-hover">
<thead><th>Name</th><th>Score</th></thead>
<tbody id="DynamicData"></tbody>
</table>
JS:
var dataList = [];
var dataRow1 = {};
dataRow1.Name = "Test User 1";
dataRow1.Scores = [10, 22, 32];
dataList.push(dataRow1);
var dataRow2 = {};
dataRow2.Name = "Test User 2";
dataRow2.Scores = [34];
dataList.push(dataRow2);
var dataRow3 = {};
dataRow3.Name = "Test User 3";
dataRow3.Scores = [20, 42, 92];
dataList.push(dataRow3);
var dynamicData = $('#DynamicData');
$.each(dataList, function(i, data){
if (data.Scores.length > 1)
{
$.each(data.Scores, function (j, score){
if (j == 0)
{
dynamicData.append('<tr class="selectable-row"><td rowspan="'+data.Scores.length+'">'+data.Name+'</td><td>'+score+'</td></tr>'); }
else
{
dynamicData.append('<tr class="selectable-row"><td>'+score+'</td></tr>');
}
});
}
else if (data.Scores.length == 1)
{
dynamicData.append('<tr class="selectable-row"><td>'+data.Name+'</td><td>'+data.Scores[0]+'</td></tr>');
}
});
//event
$('.selectable-row').on('click', function(){
dynamicData.find('tr').removeClass('selected');
$(this).addClass('selected');
});
CSS:
.selected{background-color:skyblue;}
现状:
如果我点击第一行的单元格,姓名(Test User 1)和得分(10)会被选中。
期望:
当我点击第一行的任何单元格时,姓名(Test User 1)和所有得分单元格(10、22和32)都应该被选中。
欢迎提出任何建议。
.table>tbody+tbody { border-top: 2px solid #ddd; }
- Abhitalks