tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von CPoly
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
346
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    südpol südpol ist offline Mitglied Brokat
    Registriert seit
    Apr 2003
    Ort
    London (UK)
    Beiträge
    253
    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:
    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
    Bei einem Response meiner Funktion von dem:
    PHP-Code:
    <ul>
    <
    li id="3">Das Kind</li>
    </
    ul
    In das zu verwandeln:
    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
    Ich habe bis jetzt immer folgendes gemacht:

    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?
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Zitat Zitat von südpol Beitrag anzeigen
    hier gibt es bestimmt einen schönere Funktion mit der ich den content einfach an die schon vorhandenen Daten anhängen kann, oder?
    Die Funktion nennt sich appendChild
    http://www.w3schools.com/dom/met_ele...ppendchild.asp
     

  3. #3
    südpol südpol ist offline Mitglied Brokat
    Registriert seit
    Apr 2003
    Ort
    London (UK)
    Beiträge
    253
    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:

    PHP-Code:
    <ul>
    <
    li id="3">Das Kind</li>
    </
    ul
    und wird so in meiner javascript funktion verwendet:

    document.getElementById('1').appendChild(xmlHttp.responseText);

    Die Fehlermeldung bei diesem Aufbau sagt (lt. FF Webdeveloper Extension):
    [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]
    wobei line 15 die oben abgebildete Zeile ist und xmlHttp.responseText mit den richtigen Werten gefüllt ist.

    ... 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?

    Danke
     

  4. #4
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    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).
    südpol bedankt sich. 

  5. #5
    südpol südpol ist offline Mitglied Brokat
    Registriert seit
    Apr 2003
    Ort
    London (UK)
    Beiträge
    253
    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!
     

Ähnliche Themen

  1. jQuery Lib dynamisch nachladen (FireFox 3.5.7)
    Von KICK im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 26.07.11, 19:03
  2. Floating Layer, Inhalt dynamisch nachladen
    Von Eroli im Forum .NET Web und Kommunikation
    Antworten: 0
    Letzter Beitrag: 31.05.11, 19:10
  3. Jar's in Applikation dynamisch nachladen
    Von DaSuckOOr im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 12.08.09, 11:37
  4. ul-Liste dynamisch erweitern
    Von ahykes im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 07.07.09, 16:59
  5. Antworten: 6
    Letzter Beitrag: 10.06.07, 17:25

Stichworte