我有一張學校卡片的表格。目的是顯示平均每個評分時段。數據來自數據庫,而平均結果來自javascript。當用戶輸入任何一個輸入字段,沿該列的平均值應動態更改或更新它。現在在我當前的代碼中,它會生成一個錯誤e.text()不是一個函數。基本上,sum變量沒有從parseInt.Anyone有一個想法解決這個問題?JavaScript中的解析輸入
******抽樣結果******
Subject | Col1 |Col2 |Col3 |Col4
1 80 80 86 80 (80+80+86+80)/4 Note: not this way
2 86 85 86 81
3 80 87 85 86
Result 82 84 and so on..
It should be:
(80+86+80)/3 number of rows
view.blade.php
<tr>
<th colspan="3">Subjects</th>
<th colspan="2">First Grading</th>
<th colspan="2">Second Grading</th>
<th colspan="2">Third Grading</th>
<th colspan="2">Fourth Grading</th>
</tr>
</thead>
<tbody>
@foreach($update_card['AllGrade'] as $subject)
{!! Form::hidden('grade_id[]',$subject['grade_id']) !!}
<tr>
<td colspan="3">{!! $subject->subject !!}</td>
<td colspan="2"><input type="text" name="term_1[]" value="{!! $subject->term_1 !!}" class="form-control number-only"></td>
<td colspan="2"><input type="text" name="term_2[]" value="{!! $subject->term_2 !!}" class="form-control number-only"></td>
<td colspan="2"><input type="text" name="term_3[]" value="{!! $subject->term_3 !!}" class="form-control number-only"></td>
<td colspan="2"><input type="text" name="term_4[]" value="{!! $subject->term_4 !!}" class="form-control number-only"></td>
<td class="ave" value="0"></td>
</tr>
@endforeach
<tr id="average">
<td colspan="3">Average</td><td colspan="2">0</td> <td colspan="2">0</td> <td colspan="2">0</td> <td colspan="2">0</td>
</tr>
</tbody>
這裏的JavaScript
$("input").on("keyup", function() {
$("tbody tr").each(function(index) {
var sum = 0; // The summation of all terms.
var card = 0; // Number of cells.
$(this).children('td').not(':first').each(function(i, e) {
card++;
sum+= parseInt(e.text().trim()); //this is the error
});
var avg = sum/card;
console.log(avg);
$("#average td:nth-of-type("+index+")").html(avg);
});
});
慈,你正在從TD的文本值,但你值位於提起這裏面TD輸入,所以這裏是你應該做的: 總和+ = parseInt函數($(E) .find( 「輸入」)VAL())。 //這是錯誤 – suman
什麼sum1說,或$(this).children('input')...' – Octopus
我試圖調試,另一個問題是,它不根據列計算。這裏的目的是在第一次評分下添加所有的值,然後得到和其餘評分相同的總和和平均值。 – Chee