im Internet Explorer mit dieser Linie document.getElementById("left").getElementsByTagName("tbody")[0].innerHTML = document.getElementById("left").getElementsByTagName("tbody")[0].innerHTML + string;
gibt mir eine SCRIPT600: Invalid target element for this operation. …character 10
IE: Ungültige Zielelement - Anfügen Tabelle innerHTML- + String
Der String ist einfach das, was eine Reihe von TableRows enthält. Dies funktioniert in Chrome, Safari oder Firefox einwandfrei. Gibt es einen besseren Weg, dies zu tun? Was ich tue, ist, sobald der Benutzer auf den unteren Rand der Seite kommt, ich angehängt Tabellen in die Tabelle, um mehr Inhalt zu laden. Es handelt sich um eine Art von AJAX-Scroll-Art mit Endlos-Scrolling - Client angefordert. Ich benutze Javascript und würde es vorziehen, zu diesem Zeitpunkt bei Javascript zu bleiben und nicht nur für diese Aufgabe zu jQuery zu ändern.
-Update auch das gleiche mit: document.getElementById("left").innerHTML = document.getElementById("left").innerHTML + string;
Auch links <table id="left">
Sie können die innerHTML einer Tabelle, eines Tabellenabschnitts oder eines Tabellenzeilenelements in IE nicht festlegen. Sie können innerHTML verwenden, um eine ganze Tabelle oder nur den Inhalt einer Zelle zu schreiben. Verwenden Sie DOM-Methoden. PS. Ajax-Seiten mit "unendlichem Scrollen" sind ein Haß, da sie ernste Usability-Probleme haben. – RobG
@RobG Ich denke, was Sie vorschlagen (Ihre ersten beiden Sätze scheinen sich zu widersprechen) ist, was ich gerade versucht habe: die gesamte Tabelle mit innerHTML umzuschreiben. Zweitens glaube ich, dass ich DOM-Methoden verwende. Willst du damit sagen, dass ich die zusätzlichen Zeilen über das DOM und nicht eine Zeichenkette anlegen muss? Endlich wird das unendliche Scrollen vom Client angefordert. – michaellindahl
@RobG Nun, ich habe versucht, den Code alle im DOM schreiben, aber 'newLink.onclick = function() {toggleVote()};' wollte nicht auf mich hören. @KernelJames hat eine großartige Lösung. Würdest du zustimmen? – michaellindahl