【发布时间】:2021-03-13 18:12:29
【问题描述】:
我的网页正在做它应该做的事情,但是,我希望在再次单击按钮后结果图像消失。它目前所做的是,它离开上一个结果中的图像,只显示下一个结果中的图像,这使得它变得混乱,它基本上只是堆积在图像上。我只想显示一张图像,一次一张。请帮忙!
HTML:
<form>
<ul>
<li>
<label for="firstDegree">First Degree:</label>
<input type="number" id="firstDegree">
</li>
<li>
<label for="secondDegree">Second Degree:</label>
<input type="number" id="secondDegree">
</li>
<li>
<button type="submit" id="button" onclick="missingAngle();">Enter</button>
</li>
</ul>
</form>
<h2 id="result"></h2>
<img src="images/acute-triangle.png" id="acute-triangle" style="display:none;">
<img src="images/right-triangle.png" id="right-triangle" style="display:none;">
<img src="images/obtuse-triangle.png" id="obtuse-triangle" style="display:none;">
JS:
function missingAngle(firstDegree, secondDegree) {
var firstDegree = parseInt(document.getElementById('firstDegree').value);
var secondDegree = parseInt(document.getElementById('secondDegree').value);
document.getElementById('result').innerHTML =
(firstDegree + secondDegree > 180) ? 'Sorry, not a triangle.' :
(firstDegree + secondDegree > 90) ? 'The missing angle is an acute angle.' :
(firstDegree + secondDegree === 90) ? 'The missing angle is a right angle.' :
(firstDegree + secondDegree < 90) ? 'The missing angle is an obtuse angle.' :
null;
event.preventDefault();
if (firstDegree + secondDegree > 90) {
document.getElementById('acute-triangle').style.display = 'block';
} else if (firstDegree + secondDegree === 90) {
document.getElementById('right-triangle').style.display = 'block';
} else if (firstDegree + secondDegree < 90) {
document.getElementById('obtuse-triangle').style.display = 'block';
}
}
【问题讨论】:
-
当您将显示设置为阻止应该显示的图像时,您是否尝试将其他两个图像的显示设置为无?如果您为所有三个图像添加一个类,您可以简单地将使用该类的所有图像的显示设置为无,然后显示您想要的图像。
-
对不起,我没有意识到这种情况。能否提供更多相关照片?
-
@devlincarnate 是的,这就是我现在想要做的(创建一个类),因为现在我的代码又长又重复。谢谢
标签: javascript image onclick conditional-statements