我不确定为什么这个字段没有使用正确的数字进行更新。值得注意的是,由于某种原因,任何数字<1都在alert()函数中进行舍入。我认为所有数字都只是向下舍入但我不知道另一种方法来获得不会那样做的价值?有什么建议吗?
实际值= 0.03
var citrullineChoice = document.getElementById("citrulline").getElementsByClassName("on")[0].value;
警告返回0
实际值= 0.03
var tyrosineChoice = document.getElementById("tyrosine").getElementsByClassName("on")[0].value;
警告返回1
答案 0 :(得分:1)
您尝试使用parseFloat()方法,因为javascript可能正在尝试将值添加到int。
var tyrosineChoice = parseFloat(document.getElementById("tyrosine").getElementsByClassName("on")[0].value);
答案 1 :(得分:1)
使用.innerText
代替.value
- 您没有任何输入元素。
jQuery库未添加到您的示例中,存在控制台错误:
pen.js:191未捕获的ReferenceError:$未定义
on
$("#perServing").html("$" + perServing);
答案 2 :(得分:0)
您应该使用.getAttribute('value')
代替.value
var citrullineChoice = parseFloat(document.getElementById("citrulline").getElementsByClassName("on")[0].getAttribute('value'));
这是您的codepen
答案 3 :(得分:0)
以下是您想要的修补程序:http://codepen.io/emiyake/pen/bwKRQP
我将值传递给函数,而不是将其作为属性值添加到元素中。
<li id="caffeinetwo" class="off" onclick="changeClass(this, 0.03)">250</li>
还改变了你的changeClass,所以如果你想在你的创建栏中添加或删除一个选项,你就不需要改变它。