如何删除附加元素?
How can i remove an appended element?
我正在做 javascriptissexy.com 的练习,该练习是构建一个测验器。我试图根据变量页面值显示一个问题,问题存储在数组对象中,当单击下一个按钮时,页面变量递增 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]);
}
}
不确定您是否使用 jQuery 但是;使用 jQuery empty() 函数,您可以轻松删除之前添加的问题,例如:
$('legend').empty();
您可以在此处找到更多信息:jQuery API empty() function
嗯,不用每次都使用 .append()
,您可以使用 .replaceWith()
而不是 $("legend").children()
。
例如,每种情况下的代码如下所示:
$("legend").children().replaceWith(textNode);
appendChoices()
break;
它将在每种情况下替换 $("legend")
内容。
编辑:
或者最好的方法是使用 .html()
方法,如下所示:
$("legend").html(textNode);
appendChoices()
break;
注:
我看到你在每种情况下都在做同样的事情,通过使用相同的语句,switch
块的目的是什么?
我正在做 javascriptissexy.com 的练习,该练习是构建一个测验器。我试图根据变量页面值显示一个问题,问题存储在数组对象中,当单击下一个按钮时,页面变量递增 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]);
}
}
不确定您是否使用 jQuery 但是;使用 jQuery empty() 函数,您可以轻松删除之前添加的问题,例如:
$('legend').empty();
您可以在此处找到更多信息:jQuery API empty() function
嗯,不用每次都使用 .append()
,您可以使用 .replaceWith()
而不是 $("legend").children()
。
例如,每种情况下的代码如下所示:
$("legend").children().replaceWith(textNode);
appendChoices()
break;
它将在每种情况下替换 $("legend")
内容。
编辑:
或者最好的方法是使用 .html()
方法,如下所示:
$("legend").html(textNode);
appendChoices()
break;
注:
我看到你在每种情况下都在做同样的事情,通过使用相同的语句,switch
块的目的是什么?