Hey vielen Dank erstmal für die Antwort!
Works as intended. Du erzeugst eine Tabelle (createElement) und hängst sie an das bestehende Dokument an (appendChild). Wenn da schon eine Tabelle ist, ist sie zu diesem Zeitpunkt Teil des bestehenden Dokuments.
Die Tabelle soll immer 2 Spalten und genau 30 Zeilen haben, da ich nur die ersten 30 Werte aus dem array brauche.
Hole am besten nur die 30 benötigten Zeilen vom Server. Dann musst du JavaScript-seitig keinen Filter betreiben.
Leider unterstützt der Server diese Abfrage nicht. Du kriegst nur den vollen Wurf an Daten...
Sage appendChild an, an welcher Stelle es appenden soll. Gib dem Elternelement eine ID, identifiziere es mit getElementById() und weise die Tabelle *diesem* Element als Kind zu.
Ich habe es jetzt so gelöst:
var tableasks=document.getElementById('Asks').rows;
var z=tableasks[1].cells;
z[0].innerHTML="Price";
z[1].innerHTML="Volume" ;
for (var i = 4; i < 34; i=i+2){
tableasks[i/2].cells[0].innerHTML=asksarray[i-4]
tableasks[i/2].cells[1].innerHTML=asksarray[i-3]
}
Und im body eine leere tabelle mit der anzahl an zeilen vordefiniert:
<table id="Bids" border="1" cellspacing="1" cellpadding="2">
<colgroup>
<col width="100">
<col width="100">
</colgroup>
<tr>
<th colspan="2">Bids</th>
</tr>
<tr><td>Price</td><td height="18">Volume</td></tr>
<tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr><tr><td height="18"></td><td></td></tr>
</table>
Ist bestimmt nicht die eleganteste Methode, aber zumindest funktioniert es...
Jetzt habe ich allerdings noch eine Frage:
ich habe die Funktion, die die xmlhttprequest anfrage macht mit einem intervall versehen:
Code:
setInterval(function() {...}, 3000);
Jetzt hätte ich es aber gerne, dass die Funktion am anfang erst einmal durchläuft und sich dann wiederholt. Momentan muss ich immer 3 sekunden warten, bevor ich werte sehe. Wie mache ich das?
Danke und beste Grüße