Javascript - 计算和比较



我正在学习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大于或小于pesor != 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)

相关内容

  • 没有找到相关文章