1

jQueryを使い始めたばかりですが、問題が発生しています。スパンタグ間の数値を取得し、入力フィールドに平均を出力する必要があります。値が0以外のスパンのみが有効です。それ以外の場合は、無視する必要があります。また、数値はいつでも変更される可能性があり、平均はページをリロードせずに更新する必要があります。

関連するHTML

<div>
    <span class="pm_label">5</span>
</div>
<div>
    <span class="pm_label">10</span>
</div>
<div>
    <span class="pm_label">0</span>
</div>

<input type="text" name="average" class="average" value="">

動作しないJS:

jQuery( document ).ready( function($) {

    var sum = 0; 
    var nums = 0;

     $('.pm_label').each(function(){

        var value = $(this).html()

        if(value != 0) {

            sum += value;
            nums++;
        }
     });

     var avg = sum / nums ; 

     $('#average').val(Math.floor(avg));
     console.log(avg);

});

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

4

2 に答える 2

2

開始するには:

var total = 0,
    valid_labels = 0,
    average;

$('.pm_label').each(function () {
    var val = parseInt(this.innerHTML, 10);
    if (val !== 0) {
        valid_labels += 1;
        total += val;
    }
});

average = total / valid_labels;
$('.average').val(average);

これがデモです

spanこれを関数にして、 sの値が変わるたびに呼び出すことができます。

于 2013-01-31T22:31:21.740 に答える
1

IDを持つようにurテストボックスを変更します

<input type="text" name="average" class="average" value="">

<input type="text" ID ="average" name="average" class="average" value="">

または名前属性を使用して選択

$('input[name="average"]').val("");


use sum += parseInt(value);   instead of  sum += value;
于 2013-01-31T22:31:17.750 に答える