javascript - 在javascript中重新单击按钮时如何更新元素
问题描述
我只是想在小型应用程序中重新单击按钮时更新 div p 元素的内容。我正在编写大量 DOM 脚本,并且几乎在 JS 中创建了所有 HTML。有一个单选按钮选择列表,基于选中的按钮,一个包含结果的 div 元素被创建并显示在页面主体的末尾。
mainBody[0].appendChild(resultBox);
麻烦的是,如果我重新单击按钮重新计算,则会创建另一个 div 并将其添加到正文中。我试过用 css 改变课程,但它不起作用,我有点困惑。
我怎样才能用新的替换它?
一些代码片段
js
// assign onclick function to calculate button
document.getElementById("calc-btn").onclick = function() {
var totalScore = 0;
var inputs = document.getElementsByTagName("input");
for (let i = 0; i < inputs.length; i++) {
var current = document.getElementsByTagName("input")[i];
if (current.getAttribute("type") === "radio" && current.getAttribute("checked") === "true") {
totalScore += parseInt(current.value);
}
}
var resultBox = document.createElement("div");
resultBox.setAttribute("class", "result-box");
var resultHeading = document.createElement("h3");
resultBox.appendChild(resultHeading);
var headingText = document.createTextNode("Your Results");
resultHeading.appendChild(headingText);
var paragraph = document.createElement("p");
resultBox.appendChild(paragraph);
var resultText = calculateResult(totalScore);
paragraph.appendChild(resultText);
mainBody[0].appendChild(resultBox);
if (resultBox.className == "result-box") {
resultBox.className = "result-displayed";
} else {
resultBox.className = "result-box";
}
}
css
.result-box {
display: none;
}
.result-displayed {
display: block !important;
background-color: #fff;
border: 1px solid rgb(43, 41, 41);
width: 60%;
margin: 0 auto !important;
border-radius: 15px;
color: #111;
font-size: 18px;
}
.result-displayed p {
margin-top: 0 !important;
font-size: 16px;
text-align: justify;
padding: 2%;
}
解决方案
您可以尝试删除旧的 div 本身.removeChild(elem)
element.parentNode.removeChild(element);
就在添加新的之前,或者,更新 div 的内容,而不是每次都生成它。
推荐阅读
- javascript - 通过 pushState 改变当前 URL 的路径时改变页面的内容
- android - 房间数据库错误:迁移没有正确处理
- amazon-web-services - 我是否需要将 AWS Lambda 用于 Alexa 智能家居技能?
- laravel - 将登录用户属性作为集合获取?
- javascript - 在 createcontext 中缺少一些案例
- python-3.x - 如何在 QGridLayout 中突出显示单元格
- php - 将数据导出到excel表时如何将数据库的行值转换为列值?
- php - Google Cloud PHP Translate 使用什么版本的翻译 API?
- php - 通过模块升级创建自定义客户属性 (UpgradeData.php)
- ios - 等待网络调用完成