我刪除了一下你的代碼的,現在似乎工作。 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是否可以爲你寫一個小例子?感謝您的回答。 –