首先,我有2种计算函数
第一个处理复选框,第二个处理收音机
我想在文本中显示总计算框。
下面的示例工作,但它会覆盖对方,当我没有选中它。如何在javascript中合并两个计算函数
//calculate price
var checks = document.getElementsByName('e');
for (var i = 0; i < checks.length; i++)
checks[i].onclick = function() {
var cal = document.getElementsByName('e');
var total = 0;
for (var i = 0; i < cal.length; i++) {
if (cal[i].checked)
total += parseFloat(cal[i].getAttribute('data'));
}
document.getElementsByName('total')[0].value = '$' + total;
}
//calculate radio price
var tick = document.getElementsByName('d');
tick.forEach(function (value) {
if (value.checked)
document.getElementsByName('total')[0].value = '$' + value.getAttribute('data');
})
for (var i = 0; i < tick.length; i++)
tick[i].onclick = function() {
var rad = document.getElementsByName('d');
var sc = 0;
for (var i = 0; i < rad.length; i++) {
if (rad[i].checked)
sc += parseFloat(rad[i].getAttribute('data'));
}
document.getElementsByName('total')[0].value = '$' + sc;
}
但是当我试图让两个值的总和被除去
document.getElementsByName( “总”)[0]。价值= “$” +总; 和document.getElementsByName(“total”)[0] .value =“$”+ sc;
和由
document.getElementsByName( “总”)一起合并两者的它[0]。价值= “$” +总+ SC;
它给了我一个错误“total或sc underfine”。
是否有任何建议或提示让我得到两者的总和?
您可以通过将事件的复选框和收音机的父元素简化代码了很多东西。那么你只需要添加一次事件而不是每个元素。也可以使用'addEventListener('click')'而不是element.onclick = function(){}'将多个函数绑定到同一个元素,而不是覆盖事件。 – Shilly
你能举个例子吗?我是新来的JavaScript,我仍然cnt解决这个问题 – ccs