Javascript 元素值的总和

Javascript sum of elements value

本文关键字:元素 Javascript      更新时间:2023-09-26

JavaScript代码:

function getCheckbox(name,id){
  var check = 0; 
  var deger = "option-checkbox-"+id; 
  var dom = document.getElementById(deger); 
  if( dom.checked )
       check += parseFloat( dom.value ); 
  else check -= parseFloat( dom.value ); 
  return check.toFixed(2);**//right value.(12.45)** 
} 
function getRadio(name,id) {
  var radio=0; 
  var deger="option-radio-"+id; 
  var radio="option["+name+"]"; 
  var selectedli = document.getElementsByName(radio); 
  var degerli    = document.getElementById(deger); 
  if( selectedli.checked )
       radio = parseFloat( degerli.value );
  else radio = parseFloat( degerli.value )
  return radio.toFixed(2)**//right value.(42.00)** 
} 
function getSelected(name,id) {
  var selectedid="option["+name+"]"; 
  var selecte = 0; 
  var selected = document.getElementById( selectedid ); 
  selecte = parseFloat(selected.value); 
  return selecte.toFixed(2);**//right value.(-12.29)** 
} 
function toplam(name,id) {**//not expected(0)** 
  var toplan = 0; 
  toplan = getSelected(name,id)+getRadio(name,id)+getCheckbox(name,id); 
  $( '#toplam_goster' ).fadeOut(200, function(){
    document.getElementById("toplam_goster").innerHTML = toplan;
  }); 
  $( '#toplam_goster' ).fadeIn(200); 
} 

.在最后一个函数中返回 0。我该如何解决它。

谢谢。

返回 selecte.toFixed(2);//这返回字符串和加法可能 返回 0

任一返回编号,即返回选择*1或在添加之前转换为数字,即

toplan=getSelected(name,id)*1+getRadio(name,id)*1+getCheckbox(name,id)*1; 

这个特定的函数有几个问题:

function getRadio(name,id) 
{      
    var radio=0; 
    var deger="option-radio-"+id; 
    var radio="option["+name+"]"; 
    var selectedli = document.getElementsByName(radio); 
    var degerli =document.getElementById(deger); 
    if(selectedli.checked) {
        radio = parseFloat(degerli.value);
    }
    else {
        radio = parseFloat(degerli.value)
    } 
    return radio.toFixed(2)**//right value.(42.00)** 
} 

您声明了两次radio变量 - 最初值为 0,然后为字符串。

你调用document.getElementsByName()它返回一个元素数组,然后执行selectedli.checked;数组将没有check属性。如果您希望它只返回单个radio元素,则应测试 selectedli[0].checked .

您有一个执行相同代码的 if 语句,无论条件的计算结果是否为 true。这要么是你的错误,要么if声明可以完全删除。