2016-07-14 4 views
-2

ビルドしているフォームの要素に削除ボタンを追加する際に問題が発生しました。最後の機能deleteField()は私にトラブルを与えています。削除しようとすると、イベントや色の要素を受け入れていません。JavaScriptを使用したHTML要素の削除

なぜ要素がノードクラスのサブセットである場合、その要素をノードとして受け入れないのですか?

<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

実行可能コードを作成してくださいする必要があります。 –

+1

'delete_button.onclick = deleteField(divName、counter);'これはすぐに 'deleteField(...)'を実行し、 '.onclick'に戻り値(' undefined')を代入します。 – Andreas

+0

「イベントや色の要素を受け入れていません」と定義してください。間違いはありますか? – Teemu

答えて

1

最後の関数deleteField()は私に迷惑を与えています。削除しようとすると、イベントや色の要素を受け入れていません。

ボトムラインparentremoveChild(color);parent.removeChild(color);

関連する問題