javascript - 当我按下按钮并输入值2时,如果执行命令,则不会执行其他操作

原文 标签 javascript html if-statement

首先,我想表示歉意,因为以下代码是用丹麦语编写的,对于非丹麦人来说可能没有任何意义。

我已经编写了这段代码:

JS Link

代码的重要部分是这个,但是我不确定这是否是问题所在:

function udregnAnalyseAr() {
        var virksomhedsnavn = prompt("Hvad hedder den virksomhed du arbejder med?");
        var analysear;
        var ar = parseFloat(prompt("Hvor mange analyseår er der?"));


然后下来:

if (ar === 1.00) {
        var afkastningsgrad1 = parseFloat(prompt("Hvad er afkastningsgraden på i det første år? (Det mindste år)")); 
        if (afkastningsgrad1 <= 4.00)
        {
        value1 = "Afkastningsgraden i år 1 er blevet registreret til " + afkastningsgrad1 + " %. Den er på et utilfredsstillende niveau sammenlignet med markedsrenten på 3 % plus et risikotillæg (marts 2016). <br>";
        }
        else if (afkastningsgrad1 > 4.00)
        {value1 = "Afkastningsgraden i år 1 er blevet registreret til " + afkastningsgrad1 + " %. Den er på et tilfredsstillende niveau sammenlignet med markedsrenten på 3 % plus et risikotillæg (marts 2016). <br>";
        }
        else
        {value1 = "Afkastningsgraden er blevet indtastet forkert.<br>";
        }
        document.getElementById("afkastningDataTxt").innerHTML = value1
        }

    else if (ar === 2) {
        var afkastningsgrad1 = parseFloat(prompt ("Hvad er afkastningsgraden på i det første år? (Det mindste år)")); 
        if (afkastningsgrad1 <= 4.00)
        {
        value1 = "Afkastningsgraden i år 1 er blevet registreret til " + afkastningsgrad1 + " %. Den er på et utilfredsstillende niveau sammenlignet med markedsrenten på 3 % plus et risikotillæg (marts 2016). <br>";
        }
        else if (afkastningsgrad1 > 4.00)
        {value1 = "Afkastningsgraden i år 1 er blevet registreret til " + afkastningsgrad1 + " %. Den er på et tilfredsstillende niveau sammenlignet med markedsrenten på 3 % plus et risikotillæg (marts 2016). <br>";
        }
        else
        {value1 = "Afkastningsgraden er blevet indtastet forkert.<br>";
        }


我的问题是,当我在第一个函数中将“ ar”定义为2时,它并不关心第二个函数中的值。它自动充当ar = 1并启动if执行。

最佳答案

您应将“ ar”声明为:
ar = parseFloat(prompt(“ Hvor mangeanalyseårer der?”));
而不是将其声明为:
var ar = parseFloat(prompt(“ Hvor mangeanalyseårer der?”));

原因是您必须在第二个函数中访问ar的值,同时用“ var”声明一个变量使其在其作用域之外是局部且不可访问的。声明不带“ var”的变量将使其成为全局变量。

您可以尝试的另一件事是在调用它时在第二个函数中传递变量。这样,您不必全局声明变量“ ar”。

所以应该这样:

在HTML中:

<button onClick="udregnAnalyseAr()">Rentabilitet</button>


在JavaScript中

function udregnAnalyseAr() {
//implementation of function
var ar =  parseFloat(prompt("Hvor mange analyseår er der?"));
afkastningData(ar);// call the other function here instead of calling it from html itself.
}
function ;afkastningData(ar){
//implementation of function
}

关于javascript - 当我按下按钮并输入值2时,如果执行命令,则不会执行其他操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35951695/

相关文章:

javascript - 如何使用jQuery插入字段?

javascript - 使用函数在if条件javascript中返回值?

python - For循环中的if语句-逻辑错误

java - 循环内的逻辑?或者更确切地说是两个独立的几乎相同的循环?

javascript - 中继编译Relay Modern代码时变量不在范围错误

html - 导航栏和页脚在Mobile View 上未对齐-Bootstrap

javascript - 无法以表格形式获取值req.body.value

javascript - 在html表中上下移动行

javascript - 设计模式:是否应将对不同模块的重复功能调用移至其自身的“抽象”位置?

javascript - 传递选择器或对象,将其转换为jQuery对象的最佳方法是什么?