【发布时间】:2017-08-09 10:17:00
【问题描述】:
我需要使用 JavaScript 在此元素内添加一条消息。
<div id="messagePanel">
</div>
这里是 Javascript
var calc = document.getElementById('form');
calc.addEventListener('submit', calculateAndPrintRisk);
var total;
var riskTotal;
var age;
var bmi;
var diet;
var diabetes;
function calculateRisk() {
age = document.querySelector('input[name="age"]:checked').value;
bmi = document.querySelector('input[name="bmi"]:checked').value;
diabetes = document.querySelector('input[name="diabetes"]:checked').value;
diet = document.querySelector('input[name="diet"]:checked').value;
age = parseInt(age);
bmi = parseInt(bmi);
diabetes = parseInt(diabetes);
diet = parseInt(diet);
total = age + bmi + diabetes + diet;
return total;
};
function calculateAndPrintRisk() {
var riskTotal = calculateRisk();
var message;
var panel = document.getElementById("messagePanel");
if (total <= 15) {
var para = document.createElement("p");
var node = document.createTextNode("This is new.");
para.appendChild(node);
var element = document.getElementById("messagePanel");
element.appendChild(para);
} else if (total <= 25) {
alert("medium");
} else {
alert("high");
}
}
这个 Div 元素是隐藏的,因此,它只会在显示消息时出现。代码的目标是: 当按下计算按钮时,函数 calculateRisk() 将计算每个答案的值(年龄、体重指数、糖尿病、饮食),并将它们加在一起,如果总数
#messagePanel{
width:600px;
height:150px;
border:1px solid black;
visibility: hidden;
任何帮助都将不胜感激,因为我仍然是 javascript 的菜鸟。 谢谢
【问题讨论】:
-
这里实际上没有一个明确的问题。您是在问如何使 div 可见吗?
panel.style.display = "block";应该解决这个问题。你可以google一下如何很容易地在JS中设置CSS属性 -
只有当您将
display设置为none以外的其他值时才会出现。 -
您应该添加不适用于当前解决方案的内容。我相信你的问题是,当你添加 p 标签时,messagePanel 仍然会被隐藏
-
您正在检查
total但正在计算riskTotal
标签: javascript css html