Javascript Klonenen einer Reihe

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Javascript Klonenen einer Reihe

    Hallo mieinander,
    wieder mal benötie ich Hilfestellung.

    Ich habe das Problem das ich bei meinem Formular die Möglichkeit haben muss das man mehr als eine Aktivität einträgt.

    Source Code

    1. <tr class="invisible" id="tr_aktivitaeten">
    2. <td> Aktivitäten</td>
    3. <td>
    4. <table id="aktivitaeten_tabel">
    5. <tr>
    6. <td style="margin-left: 10px;" class="get_this">
    7. <select size="1" name="aktivitaeten">
    8. <option selected="selected" disabled="disabled">Auswählen</option>
    9. <!-- Generieren der Optionen aus DB Einträgen-->
    10. <?php
    11. foreach ($aktivitaet_list AS $aktivitaet){
    12. echo('<option value="'.$aktivitaet['aktivitaet_id'].'">'.$aktivitaet['aktivitaet_name'].'</option>');
    13. }
    14. ?>
    15. <!-- ende des generierens -->
    16. </select>
    17. </td>
    18. </tr>
    19. <tr id="before">
    20. <td >
    21. <input type="button" value="1" onclick="javascript:get_delete_before(this);" />
    22. <input type="button" value="2" onclick="javascript:add_new_row(this);" />
    23. </td>
    24. </tr>
    25. </table>
    26. </td>
    27. </tr>
    Display All



    So aus dem heraus will ich über der Reihe mit der ID "before" die reihe mit den aktionslisten generieren.


    Kann mir einer das erklären bzw. mir mal nen code dafür zur verfügung stellen?
    Versuche es jetzt schon 3 ganze Arbeitstage das mit child und arent und clone der knoten zu machen :/
    Aber iwie mach ichs die ganze zeit falsch auch wenn ich es schaffe die Parents anzu sprechen bekomme ich das mit den childNodes nicht hin :(


    danke für eure hilfe ;)
  • Moin!

    TRs Klonen ist ne komische Sache, das weiss jeder der es mal versucht hat. xD

    Mal so zum Ablauf, ich geh jetzt mal davon aus, dass du jQuery benutzt?
    Wenn du in der Funktion drin bist, hast du im Parameter den Button. Ich würde mir nun einfach mit

    Source Code

    1. var table = $(parameter).parents('#aktivitaeten_tabel');
    die Tabelle holen und dann mit

    Source Code

    1. var first_row = table.children().first();
    oder

    Source Code

    1. var first_row = table.children().filter('.get_this');
    die Zeile holen. Dann Klonen und nach der Zeile einfügen:

    Source Code

    1. first_row.clone().after(first_row);
    .

    Hilft dir das weiter? :)

    Viele Grüße
    Bodo06
  • Leider nein :D

    Das ist in nem langezogenen Projekt.

    Muss das Komplett mit JS machen ohne Jquerry.

    Ich hatte da mal was gesehen was sehr Simel erschien aber dann mir doch nicht geholfen hat.

    Source Code

    1. function test(it)
    2. {
    3. var ele=it;
    4. parent_number=3;//für tablebody element als var ele
    5. var x=0;
    6. while(x<=parent_number)
    7. {
    8. ele=ele.parentNode;
    9. x++;
    10. }
    11. var chi=ele.childNodes[0];
    12. var clo_ele=chi.cloneNode(true);
    13. //ab hier komme ich nicht weiter. wie funktioniert das jetzt mit dem
    14. //ele.insertBefore(ele.childNodes[ele.childNodes.lenght], clo_ele);
    15. //??
    16. }
    Display All


    Also so wollte ich das machen dami ich auch mal das mit dem Klonen verstehe.
    Naja nicht so einfach wie ich dachte :/
    Ich glaube das ganze mi den Childnodes ist auch iwie falsch :(

    Ideen?