2016-07-14 7 views
-2

Ich habe ein Problem beim Hinzufügen einer Löschschaltfläche zu Elementen in einem Formular, das ich gerade erstelle. Die letzte Funktion deleteField() gibt mir Ärger. Das Ereignis oder die Farbelemente werden nicht akzeptiert, wenn ich versuche, sie zu löschen.Löschen von HTML-Elementen mit JavaScript

Warum akzeptiert es die Elemente nicht als Knoten, wenn es sich um eine Teilmenge der Knotenklasse handelt?

<script type="text/javascript"> 
var counter = 1; 
function addInput(divName, isUpdate, eventId, color){ 
    var dropdown = document.createElement('select'); 
    var color_field = document.createElement('INPUT'); 
    var delete_button = document.createElement('BUTTON'); 
    var x = document.createTextNode("X"); 
    delete_button.onclick = deleteField(divName, counter); 

    color_field.setAttribute("type", "color"); 
    color_field.name = "color[" + counter + "]"; 
    color_field.id = "c"+i; 
    if(isUpdate) { 
     color_field.value = color; 
    } 
    @eventList.map { event => 
     var option = document.createElement("option"); 
     option.value = "@event.getId"; 
     option.text = "@event.getTitle"; 
     dropdown.add(option);} 
     dropdown.name = "event[" + counter + "]"; 
     dropdown.id = "e" + counter; 
    color_field.appendChild(x); 
    var doc = document.getElementById(divName); 
    document.getElementById(divName).appendChild(document.createElement("br")); 
    document.getElementById(divName).appendChild(document.createTextNode("Set event #" + counter)); 
    document.getElementById(divName).appendChild(dropdown); 
    if(isUpdate){dropdown.value = eventId}; 
    document.getElementById(divName).appendChild(color_field); 
    document.getElementbyId(divName).appendChild(delete_button); 
    counter++; 
    } 

function setInput(divName){ 
    @existing_list.map { eventItem => 
     addInput(divName, true, @eventItem._1, '@eventItem._2.getOrElse("#000000")') 
    } 
} 

    **function deleteField(divName, i){ 
     var parent = document.getElementById(divName); 
     var event = document.getElementById("e"+i); 
     var color = document.getElementById("c"+i); 
     parent.removeChild(event); 
     parentremoveChild(color);** 

+0

Bitte einen ausführbaren Code erstellen. –

+1

'delete_button.onclick = deleteField (divName, counter);' dies führt sofort 'deleteField (...)' aus und weist '.onclick' den Rückgabewert (' undefined') zu; – Andreas

+0

Bitte definieren Sie "Es akzeptiert keine Ereignis- oder Farbelemente". Erhalten Sie einen Fehler? – Teemu

Antwort

1

Die letzte Funktion entfernen() gibt mir Mühe. Das Ereignis oder die Farbelemente werden nicht akzeptiert, wenn ich versuche, sie zu löschen.

Unterm Strich parentremoveChild(color); sollte parent.removeChild(color);