Javascript / HTML错误无法找到变量

时间:2016-04-03 15:21:41

标签: javascript html

通过onclick我正在调用一个执行某些计算的函数,然后应该使用函数中计算的信息动态替换一些元素(h1)。

我在页面上的其他几个地方完成了相同的操作,除了这个似乎给我一个错误。

ReferenceError:无法找到变量:container2

我认为它可能与元素的ID有关。

HTML:

<div id="macros">
    <h4>Macronutrients recommended:</h4>

    <h2>Protein: <span id="myprotein"></span></h2>
    <h2>Fats:  <span id="myfat"></span></h2>
    <h2>Carbs:  <span id="mycarb"></span></h2>
</div>  

Javascript:

function calcmacros(bmr){

    var bmrweightvalue = document.getElementsByName('bmr_weight_pounds')[0].value;
    var bmrweight = parseInt(bmrweightvalue, 10);

    var macro_p = (bmrweight*1);

    //window.alert("protein is: " + macro_p);

    var macro_f = (bmrweight*.25);

    //window.alert("Fats are: " + macro_f);

    var macro_c = (bmr - (macro_p * 4 + macro_f * 9))/4;

    //window.alert("carbs are: " + macro_c);

    var contianer2 = document.getElementById("myprotein");
    container2.innerHTML = macro_p;

    var contianer3 = document.getElementById("myfat");
    container3.innerHTML = macro_f;

    var contianer4 = document.getElementById("mycarb");
    container4.innerHTML = macro_c;


}

控制台:

ReferenceError: Can't find variable: container2
calcmacrosrdnSimulator.html:435
onclickrdnSimulator.html:101

第435行是

    var contianer2 = document.getElementById("myprotein");

如上所述

2 个答案:

答案 0 :(得分:3)

您将容器变量定义为contianer,但随后引用它们就是容器。

将变量更改为容器,然后它应该可以正常工作。

var container2 = document.getElementById("myprotein");
container2.innerHTML = macro_p;

var container3 = document.getElementById("myfat");
container3.innerHTML = macro_f;

var container4 = document.getElementById("mycarb");
container4.innerHTML = macro_c;

答案 1 :(得分:1)

您正在调用存在的变量。检查语法......

例如......

var cont ia ner2 = document.getElementById(“myprotein”); cont ai ner2.innerHTML = macro_p;