0

さて、特定のポイントまで正常に機能しているこのコードがあります。

    $(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にかなり慣れていません。

4

2 に答える 2

1

'charge' および 'fee' 入力には .each を使用する必要があります。

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

ここに、各関数の使用方法を示すリンクがあります

以下に例を示します。どのように機能するかを確認できます。

<!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
于 2015-01-15T18:07:04.780 に答える
0

これは単なる疑似コードですが、基本的にソリューションは次のようになります (純粋な js)

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

必要なすべてのクラスに対してそれを行うだけです

于 2015-01-15T18:07:56.160 に答える