1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Warenkorb - Array sortieren und einzelne li-Elemente löschen

  • heartbeat
  • 22. Juli 2012 um 17:09
  • Unerledigt
  • heartbeat
    3
    heartbeat
    Mitglied
    Punkte
    80
    Beiträge
    11
    • 22. Juli 2012 um 17:09
    • #1

    Hallo Leute,

    ich habe eine Liste mit Hilfe eines Arrays erstellt. Zu jedem Punkt gibt es einen Button 'in den Warenkorb'. Klickt man einen Button wird der jeweilige Punkt in einem weiteren Array ausgegeben. Bei der Ausgabe wird erneut ein Button erzeugt, mit dem man das jeweilige Element wieder aus dem Warenkorb löschen kann.
    Bei der Ausgabe sollen außerdem die hinzugefügten Punkte in alphabetischer Reihenfolge sortiert werden.
    Leider funktioniert das Sortieren im Warenkorb und das Löschen eines einzelnen Punktes aus dem Warenkorb noch nicht. Kann mir da jemand weiterhelfen?
    Ich habe folgenden Code:

    Code
    var kurs= ['Mathematik', 'Elektrotechnik', 'Physik', 'Java-Programmierung']
    var ausgabeliste = [];
    var ausgewaehlterKurs;
    var neu;
    
    
    function zeigeKursliste() {
        for (i = 0; i < kurs.length; i++) {
            ausgewaehlterKurs= kurs[i];
            var buttonWarenkorb = "<button type='button' value='" + ausgewaehlterKurs+ 
                "' onclick='fuegeKursHinzu(this)'>in den Warenkorb</button>";
            ausgabe += "<tr><td>" + ausgewaehlterKurs+ "</td><td>" + buttonWarenkorb + "</td></tr>";
        }
        ausgabe += "</table></p>";
        ausgabe += "<p><table><tr><th>gebuchter Kurs</th><th></th></tr>";
        ausgabe += "<tr><td id='ausgabeliste'></td><td></td></tr>";
        ausgabe += "</table></p>";
        document.body.innerHTML = ausgabe;
    }
    
    
    function fuegeKursHinzu(neu) {
        ausgewaehlterKurs= neu.value;
        ausgabeliste.push(ausgewaehlterKurs);
        ausgabeliste.sort();
        var buttonX = "<button type='button' onclick='entferneKurs(this)'>X</button>";
        document.getElementById("ausgabeliste").innerHTML += ausgewaehlterKurs+ " " + buttonX + "<br/>";
    }
    
    
    function entferneKurs(neu) {
        for (var e = 0; e < ausgabeliste.length; e++) {
            //ausgabeliste = ausgabeliste.slice(e, 0).concat(ausgabeliste.slice(e, 0));
            ausgabeliste.splice(e, 1);
        }
        //ausgabeliste.sort();
        var buttonX = "<button type='button' onclick='entferneKurs(this)'>X</button>";
        document.getElementById("ausgabeliste").innerHTML = ausgewaehlterKurs+ " " + buttonX +"<br/>";
    }
    Alles anzeigen
  • doctorseus
    1
    doctorseus
    Mitglied
    Reaktionen
    1
    Punkte
    6
    Beiträge
    1
    • 25. Juli 2012 um 12:32
    • #2
    HTML
    <html><head><title>Test</title>
    <script type="text/javascript">
    var ausgabe = '';
    var kurs= ['Mathematik', 'Elektrotechnik', 'Physik', 'Java-Programmierung']
    var ausgabeliste = [];
    var ausgewaehlterKurs;
    var neu;
    
    
    
    
    function zeigeKursliste() {
        for (i = 0; i < kurs.length; i++) {
        ausgewaehlterKurs= kurs[i];
        var buttonWarenkorb = "<button type='button' value='" + ausgewaehlterKurs+ 
            "' onclick='fuegeKursHinzu(this)'>in den Warenkorb</button>";
        ausgabe += "<tr><td>" + ausgewaehlterKurs+ "</td><td>" + buttonWarenkorb + "</td></tr>";
        }
        ausgabe += "</table></p>";
        ausgabe += "<p><table><tr><th>gebuchter Kurs</th><th></th></tr>";
        ausgabe += "<tr><td id='ausgabeliste'></td><td></td></tr>";
        ausgabe += "</table></p>";
        document.body.innerHTML = ausgabe;
    }
    
    
    
    
    function refreshChoosenCourses(){
        document.getElementById("ausgabeliste").innerHTML = "";
        for(var i = 0; i < ausgabeliste.length; i++){
            var buttonX = "<button type=\"button\" onclick=\"entferneKurs("+i+")\">X</button>";
            document.getElementById("ausgabeliste").innerHTML += ausgabeliste[i]+ " " + buttonX + "<br/>";
        }
    }
    
    
    
    
    function fuegeKursHinzu(neu) {
        ausgewaehlterKurs= neu.value;
        ausgabeliste.push(ausgewaehlterKurs);
        ausgabeliste.sort();
    
    
    
    
        refreshChoosenCourses();
    }
    
    
    
    
    function entferneKurs(elementId) {
        for (var e = 0; e < ausgabeliste.length; e++) {
        if(e == elementId){
            ausgabeliste.splice(e, 1);
        }
        }
        refreshChoosenCourses();
    }
    
    
    
    
    </script>
    </head>
        <body onload="javascript:zeigeKursliste();">
        </body>
    </html>
    Alles anzeigen

    Die einfachste Art (so wie hier) ist es die Ausgabe immer neu zu erzeugen falls sich ein Element ändert, sortiert oder gelöscht wird. Mit "i

    nnerHTML += "

    ein Element an die Liste anzuhängen und dann noch zu wollen das dieser HTML-Text automatisch sortiert wird kann nicht funktionieren. Gelöscht wird mit der Arrayposition welche der Funktion per Parameter übergeben wird. Dadurch ist es auch möglich mehrere gleiche Kurse in das Array zu packen und den richtigen zu löschen. (Wie du das vor hattest ist mir schleierhaft


    :winking_face:

    )

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern