1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
346
346
EMPFEHLEN
-
Hi,
kann mir jemand sagen wie ich einer unsortierten Liste mittels Javascript neu Kinder hinzufügen kann? Die Grundsätzlichen funktionen dahinter als (XML HTTP request etc) ist klar. Mir geht es nur um die konkrete Funktion um diese Liste:
Bei einem Response meiner Funktion von dem:PHP-Code:<ul>
<li id="1">Element eins <a href="#" onclick='getChild("1"); return false;'>klick</a></li>
<li id="2">Element zwei<a href="#" onclick='getChild("2"); return false;'>klick</a></li>
</ul>
In das zu verwandeln:PHP-Code:<ul>
<li id="3">Das Kind</li>
</ul>
Ich habe bis jetzt immer folgendes gemacht:PHP-Code:<ul>
<li id="1">Element eins <a href="#" onclick='getChild("1"); return false;'>klick</a>
<ul>
<li id="3">Das Kind</li>
</ul>
</li>
<li id="2">Element zwei<a href="#" onclick='getChild("2"); return false;'>klick</a></li>
</ul>
document.getElementById(ElementID).innerHTML = response;
Aber das würde in meinem Beispiel ja bedeuten, dass ich auch den Inhalt des schon vorhandenen li's nochmal senden müßte - hier gibt es bestimmt einen schönere Funktion mit der ich den content einfach an die schon vorhandenen Daten anhängen kann, oder?Johannes Schmidt
:: http://www.schmidtjohannes.de
:: http://www.SECURITY-BLOG.EU
:: http://www.MCSEboard.de
:: http://www.ServerHowTo.de
-
Die Funktion nennt sich appendChild
http://www.w3schools.com/dom/met_ele...ppendchild.asp
-
Hi,
das war auch mein erster Gedanke - den lehnt mein Browser aber ab (oder ich mache etwas falsch).
xmlHttp.responseText enthält diese Rückgabe des php scripts:
und wird so in meiner javascript funktion verwendet:PHP-Code:<ul>
<li id="3">Das Kind</li>
</ul>
document.getElementById('1').appendChild(xmlHttp.responseText);
Die Fehlermeldung bei diesem Aufbau sagt (lt. FF Webdeveloper Extension):
wobei line 15 die oben abgebildete Zeile ist und xmlHttp.responseText mit den richtigen Werten gefüllt ist.[11:48:00.296] uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOMHTMLDivElement.appendChild]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: https://MeineApp/javascripts/AJAX_Objectives.js :: <TOP_LEVEL> :: line 15" data: no]
... bis jetzt habe ich mit appendChild auch immer nur Elemente angehängt, die ich direkt in JS z. B. mit createElement() erstellt habe - das geht in diesem Fall aber nicht.
Kann mir jemand sagen was ich falsch mache bzw. besser kann man jemand sagen wie ich es richtig machen?
DankeJohannes Schmidt
:: http://www.schmidtjohannes.de
:: http://www.SECURITY-BLOG.EU
:: http://www.MCSEboard.de
:: http://www.ServerHowTo.de
-
Die Möglichkeiten fallen mir ein:
1. Ändere dein response um, so dass es kein HTML String mehr ist, sondern Daten (XML oder JSON). Dann kannst du diese via createElement in dein Dokument einfügen. Und du musst weniger Daten übertragen, was bei AJAX schnell mal deutlich die Reaktionszeit erhöht.
2. Benutze "document.getElementById(ElementID).innerHTML += response;" (man beachte das Plus Zeichen).
-
Hi!
Danke - Lösung Nr. 2 war genau das was ich gesucht habe! Für den Lösungsweg Nr. 1 muss ich vermutlich noch deutlich mehr lernen um diesen auf JS Seite umsetzen zu können.
Vielen Dank für die Hilfe!Johannes Schmidt
:: http://www.schmidtjohannes.de
:: http://www.SECURITY-BLOG.EU
:: http://www.MCSEboard.de
:: http://www.ServerHowTo.de
Ähnliche Themen
-
jQuery Lib dynamisch nachladen (FireFox 3.5.7)
Von KICK im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 26.07.11, 19:03 -
Floating Layer, Inhalt dynamisch nachladen
Von Eroli im Forum .NET Web und KommunikationAntworten: 0Letzter Beitrag: 31.05.11, 19:10 -
Jar's in Applikation dynamisch nachladen
Von DaSuckOOr im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 12.08.09, 11:37 -
ul-Liste dynamisch erweitern
Von ahykes im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 07.07.09, 16:59 -
Unsortierte Liste wird links im IE abgeschnitten
Von Thomas D im Forum CSSAntworten: 6Letzter Beitrag: 10.06.07, 17:25





Zitieren


Login





