我正在学习JS,在我的实践中,我无法让脚本的第二部分为我工作。
我有 3 个输入 (#ancho - #fondo - #alto
(,我在其中写入整数以在它们之间乘法,然后是除法。这部分工作正常
现在的问题是:
在第二部分中,我想比较值">r =">是否大于或小于输入#peso
中写入的数字(por 用户(,但它对我不起作用。
我在这里做错了什么?
查看JSFiddle中的演示
提前感谢!
.HTML:
<input id="ancho"> <!-- Example value="22" -->
<input id="fondo"> <!-- Example value="20" -->
<input id="alto"> <!-- Example value="16" -->
<input id="peso"> <!-- Example value="3" -->
<div id="resultado"></div>
<div id="hacercalculo" onclick="calcular();comparar()">Calcular</div>
<!--css display none-->
<div id="uno">1</div>
<div id="dos">2</div>
<div id="tres">3</div>
j查询:
https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js
脚本:
// Calculate - This part works fine
function calcular(){
v1 = document.getElementById("ancho").value;
v2 = document.getElementById("fondo").value;
v3 = document.getElementById("alto").value;
r = v1*v2*v3/4000;
//document.getElementById("resultado").value = r;
document.getElementById("resultado").innerHTML = r;
};
//=============
// Compare - This, It does not work for me
function comparar() {
var camp1= document.getElementById("resultado");
var camp2= document.getElementById("peso");
//if (camp1.value >= 0 && camp2.value <= 3) {
//if (camp1.innerText >= 0 && camp2.innerText <= 3) {
//if (camp1.innerHTML >= 0 && camp2.value <= 3) {
if (camp1.innerText >= 0 && camp2.value <= 3) {
$("#uno").show(); // This, It does not work for me
}
};
只是对 comparar(( 函数中 "if 语句" 的一个小修正。
文本内容必须转换为数字。
if (Number(camp1.textContent) >= 0 && camp2.value <= 3) {
$("#uno").show();
}
此更改后,请参阅此代码笔示例, https://codepen.io/SathishVel/pen/KKVMvqj
如果r
大于或小于peso
则r != peso
。以下comparar
函数应处理第二部分。
function comparar() {
var camp1= document.getElementById("resultado").innerHTML;
var camp2= document.getElementById("peso").value;
if (Number(camp1) != Number(camp2)) {
$("#uno").show(); // condition met hence #uno rendered.
}
};
你的代码有一些问题,因此为什么我没有工作 首先,您应该使用文本内容获取值var camp1= document.getElementById("resultado").textContent;
其次,您检索该值两次
var camp2= document.getElementById("peso").value;
if (camp1 >= 0 && camp2.value <= 3)
应该是(camp1 >= 0 && camp2 <= 3)
最后,为了使您的代码正常工作,您的 if 语句必须返回一个值
if (camp1.innerText >= 0 && camp2.value <= 3) {
return console.log('..show one') // use the return keyword to return value
}
试试这个
function comparar() {
var camp1= document.getElementById("resultado").textContent;
console.log(camp1)
var camp2= document.getElementById("peso").value;
console.log(camp2)
if (camp1 >= 0 && camp2 <= 3) {
$("#uno").show();
}
}
</script>
根据您所说的内容,您需要检查值是否在某个范围内,并且还想检查它是否有小数位,因此我将创建两个执行这两项检查的函数。
检查值是否在一定范围内的函数:
function interval(a, b, c) {
return ((b - a) * (b - c) <= 0)
}
使用示例:
interval(2, 5, 6) // true (2 < 5 < 6)
interval(2, 1, 6) // false (2 < 1 < 6), false because 2 < 1 is false
interval(2, 7, 6) // false (2 < 7 < 6), false because 7 < 6 is false
字体:检查值是否在数字范围内 信用亚历山大
检查数字是否有小数位的功能:
function isDecimal(a) {
if(Number(a) == Math.floor(a)) {
return false
} else {
return true
}
}
使用示例:
isDecimal(2) // false
isDecimal(2.2) // true
注意:在您的算法中,您使用以下变量:
var camp1= document.getElementById("resultado");
var camp2= document.getElementById("peso");
它们是字符串格式的,因此您需要先将它们转换为数字,然后再在这些函数中使用它们,因此在它们下面执行以下操作:
camp1 = Number(camp1)
camp2 = Number(camp2)