Javascript - 引用错误 : agevalue is not defined

标签 javascript html

我对我的代码有点困惑,让我解释一下:

除最后一段代码外,一切正常,我很难理解为什么?
当我尝试我的代码时,调试器告诉我

"ReferenceError: agevalue is not defined"

我明白那是什么意思,但我不明白为什么...
如果不是很明显,让我快速解释一下我想要什么:我有一个 DOM 附加到 Javascript,我想将大于或等于 10 的值/值(饮食值、年龄值、家庭值...)导入到段落中。

因为我是学生并且这是我考试的一部分,所以我不期待确切的答案,但更多的是线索或解决问题的方法。顺便说一下,我知道我的代码可以改进,但我真的想在开始改进之前完成它。

感谢您的帮助!

window.onload=changeElement;

function changeElement() { 
   document.getElementById("btn1").onclick = myFunction
}


function myFunction() {
        var agevalue;
        var radiobuttons = document.getElementsByName("age");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 agevalue = radiobuttons[i].value;
             }
         }                  

        var bmivalue;
        var radiobuttons = document.getElementsByName("bmi");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 bmivalue = radiobuttons[i].value;
             }
         }

        var familyvalue;
        var radiobuttons = document.getElementsByName("family background");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 familyvalue = radiobuttons[i].value;
             }
         }

        var dietvalue;
        var radiobuttons = document.getElementsByName("diet");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 dietvalue = radiobuttons[i].value;
             }
         }
         var total = parseInt(agevalue) + parseInt(bmivalue) + parseInt(familyvalue) + parseInt(dietvalue);

         if (total <=15){
         document.getElementById("results").innerHTML= "Result 1"; }

         if (total >=16 && total <=25){
         document.getElementById("results").innerHTML= "Result 2"; }

         if (total >25){
         document.getElementById("results").innerHTML= "Result 3" ; } 
                    }   


     if (parseInt(agevalue) >= 10 || parseInt(bmivalue) >= 10 || parseInt(familyvalue) >= 10 || parseInt(dietvalue) >= 10);
     {
        document.getElementById("risks").innerHTML= "Your risks are: "

     }

最佳答案

您的最后一个 if 条件在定义变量 agevaluemyFunction 之外。尝试将它放在 myfunction 中并检查,否则您将不得不在此方法之外(在全局上下文中)声明该变量。

function myFunction() {
        var agevalue;
        var radiobuttons = document.getElementsByName("age");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 agevalue = radiobuttons[i].value;
             }
         }                  

        var bmivalue;
        var radiobuttons = document.getElementsByName("bmi");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 bmivalue = radiobuttons[i].value;
             }
         }

        var familyvalue;
        var radiobuttons = document.getElementsByName("family background");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 familyvalue = radiobuttons[i].value;
             }
         }

        var dietvalue;
        var radiobuttons = document.getElementsByName("diet");
         for (var i = 0; i < radiobuttons.length; i++) {

             if (radiobuttons[i].checked == true) {
                 dietvalue = radiobuttons[i].value;
             }
         }
         var total = parseInt(agevalue) + parseInt(bmivalue) + parseInt(familyvalue) + parseInt(dietvalue);

         if (total <=15){
         document.getElementById("results").innerHTML= "Result 1"; }

         if (total >=16 && total <=25){
         document.getElementById("results").innerHTML= "Result 2"; }

         if (total >25){
         document.getElementById("results").innerHTML= "Result 3" ; } 

if (parseInt(agevalue) >= 10 || parseInt(bmivalue) >= 10 || parseInt(familyvalue) >= 10 || parseInt(dietvalue) >= 10);
     {
        document.getElementById("risks").innerHTML= "Your risks are: "

     }
                    }   

关于Javascript - 引用错误 : agevalue is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34529940/

相关文章:

javascript - jQuery AJAX POST 表单

javascript - 如何为游戏 PHP/JS 制作倒计时/计时器

javascript - react 性能 : anonymous function vs named function vs method

javascript - 带有静态方法的 JS 类看不到静态 setter

php - 使用 Laravel 4 发现 404 错误

javascript - 更改类 javascript 中每个元素的文本

html - 当我更改/First Website 下面的 div 的位置时,标题会移动

javascript - 检查 "how"链接被点击

javascript - 如何使用jquery清除数组索引?

javascript - 为用户提供对离线 HTML5 网络应用程序的访问