我正在尝试使用HTML和Javascript编写毕达哥拉斯定理计算器,以便它可以找到给出两个边值的任何边,所以我使用if语句但似乎我无法理解为什么它没有& #39; t work
这里有HTML和JavaScript代码
function do_things() {
var a = parseFloat(document.getElementById("a").value);
var b = parseFloat(document.getElementById("b").value);
var c = parseFloat(document.getElementById("c").value);
var output = document.getElementById("output");
if (a=0, b>0){
var c = Math.sqrt(c*c - b*b)
var node = document.createElement("LI"); // Create a <li> node
var textnode = document.createTextNode(c); // Create a text node
node.appendChild(textnode); // Append the text to <li>
document.getElementById("output").appendChild(node);
} else if (c=0, b>0){
var c = Math.sqrt(a*a + b*b)
console.log(0)
var node = document.createElement("LI"); // Create a <li> node
var textnode = document.createTextNode(c); // Create a text node
node.appendChild(textnode); // Append the text to <li>
document.getElementById("output").appendChild(node);
}
}
&#13;
<h1>Calc</h1>
<p1>Calculate the Hypotnuse given the A and B value</p1>
<p>Side A: <input type="text" id="a"/></p>
<br>
<p>Side B: <input type="text" id="b"/></p>
<br>
<p>Hypotnuse: <input type="text" id="c"/></p>
<br>
<button type="button" onclick="do_things()">Find the missing value</button>
<br>
<p id="output">The Missing hypotnuse</p>
&#13;
答案 0 :(得分:0)
&#39; ===&#39;可能在这里返回false,因为你正在将值解析为float,这将给出0.00。
答案 1 :(得分:0)
(a=0, b>0)
不是有效条件。 a = 0
是指派,应该是a == 0
或a === 0
,而,
不能作为AND
运算符,&&
。因此,您需要将此条件更改为(a === 0 && b > 0)
。
但是您可以简化代码并使用更好的条件以及更好的DOM操作。这是你如何做到的。
Number.isNaN
检查给定输入是否实际为数字<span id="output"></span>
来保存结果,比整个段落.textContent
当且仅当提供了2个边且第3个边是NaN
(空,但也是无效的数字)时,此代码保证执行计算
function do_things() {
var a = parseFloat(document.getElementById("a").value);
var b = parseFloat(document.getElementById("b").value);
var c = parseFloat(document.getElementById("c").value);
var output = document.getElementById("output");
if (Number.isNaN(a) && !Number.isNaN(b) && !Number.isNaN(c)) {
const a = Math.sqrt(c ** 2 - b ** 2);
output.textContent = ' ' + a;
}
if (Number.isNaN(b) && !Number.isNaN(a) && !Number.isNaN(c)) {
const b = Math.sqrt(c ** 2 - a ** 2);
output.textContent = ' ' + b;
}
if (Number.isNaN(c) && !Number.isNaN(a) && !Number.isNaN(b)) {
const c = Math.sqrt(a ** 2 + b ** 2);
output.textContent = ' ' + c;
}
}
&#13;
<h1>Calc</h1>
<p1>Calculate the Hypotnuse given the A and B value</p1>
<p>Side A: <input type="text" id="a"/></p>
<br>
<p>Side B: <input type="text" id="b"/></p>
<br>
<p>Hypotnuse: <input type="text" id="c"/></p>
<br>
<button type="button" onclick="do_things()">Find the missing value</button>
<br>
<p >The Missing side is: <span id="output"></span></p>
&#13;