我需要在不使用PHP或其他東西的HTML表格中打印JavaScript中關聯數組上排序的結果。 排序工作正常,因爲我可以看到在控制檯但它不顯示錶。這是因爲據我現在的源:在HTML表格中使用HTML顯示JavaScript關聯數組
var array = [{
name: 'TK345',
year: 2011,
custom: 456,
colour: 'red'
}, {
name: 'ZJ456',
year: 2001,
custom: 96,
colour: 'black'
}, {
name: 'AW364',
year: 1985,
custom: 001,
colour: 'cyan'
}, {
name: 'RT112',
year: 2012,
custom: 33,
colour: 'green'
}, {
name: 'PO445',
year: 2012,
custom: 11,
colour: 'yellow'
}];
function sortarray(sorter) {
if (array.length < 1) {
return -1;
}
if (sorter == "name") {
var byName = array.slice(0);
var tableout = document.createElement('table');
var retval = null;
byName.sort(function(a, b) {
var x = a.name.toLowerCase();
var y = b.name.toLowerCase();
retval = x < y ? -1 : x > y ? 1 : 0;
tableout.setAttribute('border', '1');
tableout.setAttribute('width', '100%')
var row = tableout.insertRow(0);
for (j = 1; j <= 5; j++) {
row = tableout.insertRow(j - 1);
for (i = 1; i <= 4; i++)
var text = document.createTextNode(retval);
var cell = row.insertCell(i - 1);
cell.setAttribute('align', 'center')
cell.appendChild(text);
}
})
document.getElementById("demo").appendChild(tableout);
console.log(retval);
} else if (sorter == "year") {
var byDate = array.slice(0);
var tableout = document.createElement('table');
var retval = null;
byDate.sort(function(a, b) {
retval = a.year - b.year;
tableout.setAttribute('border', '1');
tableout.setAttribute('width', '100%')
var row = tableout.insertRow(0);
for (j = 1; j <= 5; j++) {
row = tableout.insertRow(j - 1);
for (i = 1; i <= 4; i++)
var text = document.createTextNode(retval);
var cell = row.insertCell(i - 1);
cell.setAttribute('align', 'center')
cell.appendChild(text);
}
})
document.getElementById("demo").appendChild(tableout);
console.log(retval);
} else {};
};
<!DOCTYPE html>
<html>
<body>
<button onclick="sortarray('name')">Sort by Name</button>
<button onclick="sortarray('year')">Sort by Year</button>
<p id="demo">test</p>
</body>
</html>
所以也沒有告訴我,表中的任何頁面上或在控制檯中。
任何想法?
你有以上這些表格製作的東西return語句。 – instead
想回到那個,現在我有它在一個變量....更新源問題..秒 – Thevagabond