Ich muss die Ergebnisse einer Sortierung auf einem assoziativen Array in JavaScript in einer HTML-Tabelle, die nicht mit PHP oder diese Dinge. Die Sortierung funktioniert gut, wie ich in der Konsole sehen kann, aber es zeigt nicht die Tabelle. Hier ist die Quelle so weit, wie ich es habe jetzt:Zeige JavaScript assoziative Array in HTML-Tabelle mit HTML
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>
So ist es nicht zeigen Sie mir etwas in der Tabelle auf der Seite oder in der Konsole.
Irgendwelche Ideen?
Sie haben vor allem diese Tabelle erstellen Sachen return-Anweisung. – instead
Dachte, um das zurückzugeben, jetzt habe ich es in einer Variablen .... Aktualisierung der Quelle in Frage .. sec – Thevagabond