通过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");
如上所述
答案 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;