2015-01-15 78 views
0

好吧,我有這個代碼工作正常到一個特定的點。Javascript計算所有輸入字段與特定類別的總和

$(document).ready(function(){ 
      var val1 = +$(".charge").val(); 
      var val2 = +$(".fee").val(); 
      var val3 = +$(".loadrate").val(); 
      $("#finalrate").val(val1-val2+val3); 
    $(".financeinput").keyup.each(function(){ 
      var val1 = +$(".charge").val(); 
      var val2 = +$(".fee").val(); 
      var val3 = +$(".loadrate").val(); 
      var initial = $("#finalrate").val(); 

      $("#finalrate").val(val1-val2+val3); 

      var second = $("#finalrate").val(); 

      if(initial < second){ 

      $("#finalrate").removeClass("redardown").addClass("greenarup"); 

      } 
      if(initial > second){ 

      $("#finalrate").removeClass("greenarup").addClass("redardown"); 

      } 
      if(initial = second){ 

      } 

    }); 
}); 

我有類「.charge」,並以一流的「.fee」多個領域,但這裏的代碼也越來越與該類第一場的唯一值的多個領域,同時我需要他們都被計算。我知道這一定很容易,但我對JavaScript相當陌生。

回答

1

您應該在'收費'和'收費'輸入中使用.each。

$(".charge").each(function() 
{ 
    $(this).val(); // this should have value for current input 
} 

here is a link that shows how to use the each function

下面是一個例子,所以你可以看到它是如何工作的:

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<meta http-equiv="cache-control" content="max-age=0" /> 
<meta http-equiv="cache-control" content="no-cache" /> 
<meta http-equiv="expires" content="0" /> 
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> 
<meta http-equiv="pragma" content="no-cache" /> 
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 
<title>Login</title> 
</head> 
<body> 
<input class="test" type="text" value="2"> 
<input class="test" type="text" value="3"> 
<input class="test" type="text" value="4"> 
</body> 
<script type="text/javascript"> 
var test1 = 0; 
$(".test").each(function(){ 
    test1 += parseInt($(this).val()); 
}); 
window.alert("" + test1); 
</script> 
</html> 

我不知道正是你正在嘗試做的,但你可能想像這樣:

var val1 = 0; 
$(".charge").each(function(){ 
    val1 += parseInt($(this).val()); 
}); 
window.alert("" + val1); // should have all .charge added up here 
+0

我得到NaN的結果 – 2015-01-15 18:14:13

+0

因爲方法不返回任何東西... – brso05 2015-01-15 18:16:08

+0

給我一秒鐘,我會嘗試發佈一個例子 – brso05 2015-01-15 18:16:24

0

這只是一個僞代碼,但基本上你的解決方案可能是這樣的(純JS)

var x = document.getElementsByClassName("charge"); 
for(var i = 0; i<x.length; i++){ 
    sum += x[i].value; 
} 

,只是做了所有的類,你需要

+0

你的回答可能是正確的,但我得到NaN。你知道爲什麼嗎? – 2015-01-15 18:28:00

+0

你知道如何使用帶有斷點的開發者工具嗎?沒有html就很難確定 – user2879041 2015-01-15 19:14:17