Javascript元素和值

Javascript元素和值,javascript,Javascript,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 );

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。我怎样才能修好它

谢谢

返回select.toFixed(2);//这将返回字符串,并且可以进行加法 返回0

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

toplan=getSelected(name,id)*1+getRadio(name,id)*1+getCheckbox(name,id)*1; 
返回select.toFixed(2);//这将返回字符串,并且可以进行加法 返回0

返回号码,即返回选择e*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
;数组将不具有选中属性。如果您希望它只返回单个
无线电
元素,则应该测试
selectedli[0]。选中


您有一个
if
语句,它执行相同的代码,而不管条件的计算结果是否为true。这可能是您的错误,也可能是
if
语句可以完全删除。

此特定函数存在一些问题:

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
;数组将不具有选中属性。如果您希望它只返回单个
无线电
元素,则应该测试
selectedli[0]。选中


您有一个
if
语句,它执行相同的代码,而不管条件的计算结果是否为true。这要么是您的错误,要么是
if
语句可以完全消除。

您可以创建一个演示来重现问题吗?您的上一个函数没有返回值。您可以创建一个演示来重现问题吗?您的上一个函数没有返回值。即使返回字符串,使用
+
运算符将导致字符串连接。如果返回的值与他所说的一样(我对此表示怀疑,因为代码看起来甚至不会成功运行),那么结果不应该是
0
。但是,这是一个有效点,一旦他解决了代码的其他问题,以后会给他带来问题。不总是-如果连接计算为false,即使返回字符串,它也会返回0(零),使用
+
运算符将导致字符串连接。如果返回的值与他所说的一样(我对此表示怀疑,因为代码看起来甚至不会成功运行),那么结果不应该是
0
。然而,这是一个有效点,一旦他解决了代码的其他问题,之后会给他带来问题。不总是-如果串联计算为false,它将返回0(零)