同じ計算を異なるフィールドに適用する簡単なHTML/jqueryを作成しようとしています。JQueryを使用して異なる入力に同じ計算を適用する
<h1>Multiplication by line</h1>
<table>
<tr>
<td>Number 1</td>
<td>Number 2</td>
<td>Result</td>
</tr>
<!-- LINE ITEM START -->
<div class="lineitem">
<tr>
<td>
<input type="number" name="a" class="a" value="" />
</td>
<td>
<input type="number" name="b" class="b" value="" />
</td>
<td>
<div class="total">0 </div>
</td>
</tr>
</div>
<!-- LINE ITEM END -->
<div class="lineitem">
<tr>
<td>
<input type="number" name="a" class="a" value="" />
</td>
<td>
<input type="number" name="b" class="b" value="" />
</td>
<td>
<div class="total">0</div>
</td>
</tr>
</div>
とjQuery:
私は、次のHTMLにまで問題を単純化している
$(document).ready(function() {
$(".lineitem").each(function() {
function compute() {
var a = $('.a').val();
var b = $('.b').val();
var total = (a * b);
$('.total').text(total);
}
$('.b, .a').change(compute);
})
});
をしかし、これは最初の行のデータ入力に基づいて、各ラインの同じ結果を返します。私は明らかに、ユーザーが各行に異なる値を入力し、行ごとに異なる結果を得ることを望みます。本当に誰かが役立つことを願って
$(document).ready(function() {
$(".lineitem").each(function() {
function compute() {
var a = $(this).children('.a').val();
var b = $(this).children('.b').val();
var total = (a*b);
$(this).children('.total').text(total);
}
$('.b, .a').change(compute);
})}); */
Here's a JSFiddle with everything.
次のように私は、「各」と「$(この).children」を使用してみましたが、それはうまくいきませんでした!私は検索の公平なビットが、ここで基本的な質問には何の喜びをやった...謝罪し、それはここでは繰り返し
tr' 'のそれぞれは 'div'で囲まれて? –