在javascript中使用previousSibling.remove()删除div

时间:2015-04-06 22:20:15

标签: javascript

这是代码,

function addChoice(title,qs,first){
    choice = choice + 1;
    var container = document.getElementById("listingC");
    var checkbox = document.createElement('input');
    checkbox.type = "checkbox";
    checkbox.name = "choice";
    checkbox.value = choice;
    checkbox.id = title+'_'+qs+'_'+choice;

    var text = document.createElement('textarea');
    text.className = "ch";
    text.id = title+'_'+qs+'_'+choice+'_value';

    var answerText = document.createTextNode(" Correct Answer ");
    var del = document.createElement('input');
    del.className="delBtn";
    del.type="button";
    del.value="delete";
    var clear = document.createElement('div');
    clear.className="clear";
    container.appendChild(text);
    container.appendChild(checkbox);
    container.appendChild(answerText);
    if(first){
    }else{
        container.appendChild(del);
    }

    var btns = document.getElementsByClassName("delBtn");
    for(var i  = 0; i < btns.length;i++){
        btns[i].addEventListener("click", function(e) {
            var ch = e.target;
            var correctText = ch.previousSibling;
            var checkboxS = correctText.previousSibling;
            var textareaS = checkboxS.previousSibling;
            ch.remove();
            correctText.remove();
            checkboxS.remove();
            textareaS.remove();
        }, false);
    }
    init2(text);
}

此代码动态创建元素Textarea,Checkbox,TextNode和Button。如果用户单击该按钮,则必须删除元素。

例如,

<textarea class="ch" style="height: 57px;"></textarea>
<input type="checkbox" name="choice" value="2">
Correct Answer
<textarea class="ch" style="height: 57px;"></textarea>
<input type="checkbox" name="choice" value="3">
Correct Answer
<textarea class="ch" style="height: 57px;"></textarea>
<input type="checkbox" name="choice" value="4">
Correct Answer
<input class="delBtn" type="button" value="delete">
<textarea class="ch" style="height: 57px;"></textarea>
<input type="checkbox" name="choice" value="5">
Correct Answer
<input class="delBtn" type="button" value="delete">

前2个Textarea,chekcbox textnode,不是动态创建的,也没有删除按钮。 如果用户单击第一个删除按钮,则必须删除以前的3个兄弟。

它正在运行但有错误。 TypeError:correctText为null var checkboxS = correctText.previousSibling;

0 个答案:

没有答案