如何删除附加元素?

时间:2017-09-26 15:04:09

标签: javascript jquery html css dom-manipulation

我正在从javascriptissexy.com进行练习,练习是建立一个quizzer。我试图根据变量页面值显示一个问题,问题存储在数组对象中,当单击下一个按钮时,页面变量加1,下一个问题显示其选择。

我想要做的是在点击下一个按钮后,删除上一个附加的问题及其选择..我该怎么做?

function createQuiz(crPage) {
    textNode = Allquestions[indexController].question;
    switch (crPage) {
        case 0:
            $("legend").append(textNode);
            appendChoices()
            break;
        case 1:
            $("legend").append(textNode);
            appendChoices()
            break;
        case 2:
            $("legend").append(textNode);
            appendChoices()
            break;
        case 3:
            $("legend").append(textNode);
            appendChoices()
            break;
        case 4:
            $("legend").append(textNode);
            appendChoices()
            break;
        case 5:
            $("legend").append(textNode);
            appendChoices()
            break;
        case 6:
            $("legend").append(textNode);
            appendChoices()
            break;

        default:
            // code

    }
}


function appendChoices() {
    for (var i = 0; i < Allquestions[indexController].choices.length; i++) {
            console.log(Allquestions[indexController].choices[i]);
    }
}

2 个答案:

答案 0 :(得分:2)

不是每次都使用.append(),而是可以使用 .replaceWith() 而不是$("legend").children()

例如,每种情况下的代码如下所示:

$("legend").children().replaceWith(textNode);
appendChoices()
break;

它将替换每种情况下的$("legend")内容。

修改

或者最好的方法是使用 .html() 这样的方法:

$("legend").html(textNode);
appendChoices()
break;

注意:

我看到你在每种情况下做同样的事情,使用相同的陈述,switch块的目的是什么?

答案 1 :(得分:0)

不确定您是否使用jQuery但是;使用jQuery empty()函数,您可以轻松删除以前添加的问题,如:

$('legend').empty();

您可以在此处找到更多信息:jQuery API empty() function