1

javascriptは初めてです!これは機能しますが、やるべきことはまだたくさんあります。これを行うためのよりクリーンな方法があれば素晴らしいと思います。必要に応じてjqueryを使用してください:)

(スタックは、送信する前にもっと書くことを望んでいますが、他に何を言うべきかわかりません)

<script>

function apply(){
    var backerPrediction1 = document.getElementById("backer-prediction-1").value;
    var backerPrediction2 = document.getElementById("backer-prediction-2").value;
    var backerPrediction3 = document.getElementById("backer-prediction-3").value;
    var backerPrediction4 = document.getElementById("backer-prediction-4").value;
    var backerPrediction5 = document.getElementById("backer-prediction-5").value;
    var backerPrediction6 = document.getElementById("backer-prediction-6").value;
    var backerPrediction7 = document.getElementById("backer-prediction-7").value;
    var backerPrediction8 = document.getElementById("backer-prediction-8").value;
    var backerPrediction9 = document.getElementById("backer-prediction-9").value;
    var backerPrediction10 = document.getElementById("backer-prediction-10").value;
    var backerPrediction11 = document.getElementById("backer-prediction-11").value;
    var backerPrediction12= document.getElementById("backer-prediction-12").value;
    var backerPrediction13 = document.getElementById("backer-prediction-13").value;
    var backerPrediction14 = document.getElementById("backer-prediction-14").value;
    var backerPrediction15 = document.getElementById("backer-prediction-15").value;
    var backerPrediction16 = document.getElementById("backer-prediction-16").value;
    var backerPrediction17 = document.getElementById("backer-prediction-17").value;
    var backerPrediction18 = document.getElementById("backer-prediction-18").value;
    var backerPrediction19 = document.getElementById("backer-prediction-19").value;
    var backers = parseInt(backerPrediction1,10) +
              parseInt(backerPrediction2,10) +
              parseInt(backerPrediction3,10) +
              parseInt(backerPrediction4,10) +
              parseInt(backerPrediction5,10) +
              parseInt(backerPrediction6,10) +
              parseInt(backerPrediction7,10) +
              parseInt(backerPrediction8,10) +
              parseInt(backerPrediction9,10) +
              parseInt(backerPrediction10,10) +
              parseInt(backerPrediction11,10) +
              parseInt(backerPrediction12,10) +
              parseInt(backerPrediction13,10) +
              parseInt(backerPrediction14,10) +
              parseInt(backerPrediction15,10) +
              parseInt(backerPrediction16,10) +
              parseInt(backerPrediction17,10) +
              parseInt(backerPrediction18,10) +
              parseInt(backerPrediction19,10)
;
document.getElementById("backer-prediction-answer").value = (backers);
}
</script>

ご協力いただきありがとうございます!!:)

4

4 に答える 4

9

私はそれを次のようにします:

function apply() {
    var backers = 0;
    for (var i = 1; i < 20; ++i) {
        backers +=
            parseInt(document.getElementById("backer-prediction-" + i).value);
    }
    document.getElementById("backer-prediction-answer").value = backers;
}
于 2012-07-18T04:36:44.557 に答える
2

これを実行する最もクリーンな方法は、各backer-prediction-#要素にクラスを与え、それらすべてを取得することです。

var backerEls = document.querySelectorAll('.backer-prediction');
//Get a list of all the elements with the class 'backer-prediction'
var backers = 0;
//Total
for (var i = 0; i < backerEls.length; i++) {
    //Loop over the elements
    backers += parseInt(backerEls[i].value, 10);
    //Parse their values and add them to the total
}

console.log(backers);​

デモ

これにより、JSをまったく更新しなくても、必要な数の要素を使用できます。

于 2012-07-18T04:42:13.797 に答える
0
var answer = 0;
for(var i = 1; i <= 20; i++) {
 answer += parseInt(document.getElementById("backer-prediction-" + i).value), 10);
}

document.getElementById("backer-prediction-answer").value = answer;
于 2012-07-18T04:40:31.310 に答える
0

次のコードを使用して、支援者の合計を取得できます。

function apply(){
    var answer = getBackers();
    document.getElementById("backer-prediction-answer").value = answer;
}

function getBackers()
{
    var baseName = "backer-prediction-";
    var elementId = "";
    var backers = 0;
    for(var i = 1; i < 20; i++)
    {
        elementId = baseName + i;
        backers = backers + getElementValue(elementId);
    }

    return backers;
}

function getElementValue(elementId)
{
    var value = document.getElementById("backer-prediction-1").value;
    return parseInt(value, 10);
}
于 2012-07-18T04:41:43.843 に答える