我正在从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]);
}
}
答案 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