我删除了一下你的代码的,现在似乎工作。 http://jsfiddle.net/dt1dmmk2/
function removeDuplicates(array) {
var cleanValues = [];
$.each(array, function(i, el) {
if ($.inArray(el, cleanValues) === -1) cleanValues.push(el);
});
return cleanValues;
}
var titles=[];
var totRow=0
$('.before table').each(function() {
var rowNumber=$('tr',this).length-1;
if (totRow<rowNumber)
totRow=rowNumber;
var firstCol;
var secondCol;
$('tr',this).each(function(index) {
if (index == 0) {
firstCol=$('td:first',this).text();
secondCol=$('td:last',this).text();
titles.push(firstCol,secondCol)
} else {
$('td:first',this).attr('data-col',firstCol);
$('td:last',this).attr('data-col',secondCol);
}
});
})
titles=removeDuplicates(titles);
$('.after table').append('<tr>');
for (i in titles) {
$('.after table tr:last').append('<th>' + titles[i] + '</th>');
}
for (var b=0;b<totRow;b++) {
$('.after table').append('<tr />')
for (i in titles) {
var textToFill=$('.before td[data-col="'+titles[i]+'"]:first').text();
$('.after table tr:last').append('<td>'+textToFill+ '</td>');
$('.before td[data-col="'+titles[i]+'"]:first').removeAttr('data-col')
}
}
$('td[data-col]').removeAttr('data-col'); // just to clean
当然的TR已经在。前表订购并以这种方式你就不需要重新安排新的。
是否可以给出结果表的例子? –
为什么你不把比较数据作为第一个普通TD中的字符串,而不是你填写其余的?使用**每个**循环第一个常见的TD和**:包含**在另一个表中找到具有相同数据的td,而不是**最接近('tr')**您应该可以执行诀窍。 – Vixed
@Vixed是否可以为你写一个小例子?感谢您的回答。 –