Javascript 如何使用类选择器和jquery库调用表中输入元素中的某些值?
我无法通过使用同级()和Jquery计算并将结果发送到结果选择器来调用表HTML标记中输入的值 这可能是由于sides()方法造成的,但我不知道应该使用哪个方法通过类选择器从表中选择值 这是HTML标签Javascript 如何使用类选择器和jquery库调用表中输入元素中的某些值?,javascript,jquery,Javascript,Jquery,我无法通过使用同级()和Jquery计算并将结果发送到结果选择器来调用表HTML标记中输入的值 这可能是由于sides()方法造成的,但我不知道应该使用哪个方法通过类选择器从表中选择值 这是HTML标签 <table class="table table-condensed"> <thead> <tr> <td><strong>No</strong></td>
<table class="table table-condensed">
<thead>
<tr>
<td><strong>No</strong></td>
<td><strong>DESCRIPTION</strong></td>
<td><strong>Type</strong></td>
<td><strong>QUANTITY</strong></td>
<td><strong>UNIT PRICE</strong></td>
<td><strong>AMOUNT (USD)</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td><div><?php echo form_input('vat',set_value('',''), 'class="qty"')?> </div></td>
<td><div><?php echo form_input('vat',set_value('',''), 'class="unit"')?> </div></td>
<td><div><?php echo form_input('vat',set_value('',''), 'class="amount" readonly')?></div></td>
</tr>
<tr>
<td><div><?php echo form_input('vat',set_value('',''), 'class="qty"')?></div></td>
<td><div><?php echo form_input('vat',set_value('',''), 'class="unit"')?> </div></td>
<td><div><?php echo form_input('vat',set_value('',''), 'class="amount" readonly')?></div></td>
</tr>
<tr>
<td><div>Total</div></td>
<td> <div><?php echo form_input('total',set_value('total',''),'class="result" readonly ')?>$</div></td>
</tr>
否
说明
类型
数量
单价
金额(美元)
您可以使用最接近的行
,如
$(function () {
$('.unit,.qty').on('change', function () {
var $tr=$(this).closest('tr'); // usae the parent row to achieve this
var unit = $tr.find('.unit').val();
var qty = $tr.find('.qty').val();
unit = unit || 0;
qty = qty || 0;
var val = unit >= 1 && qty >= 1 ? parseFloat(unit * qty) : 0;
$tr.find('.amount').val(val);//parent()
var total = 0;
var update = false;
$('.amount').each(function () {
val = parseFloat($(this).val()) | 0;
total = val ? (parseFloat(total + val)) : total;
});
$('.result').val(total);
});
});
尝试以下操作:使用
.closest()
查找父级tr
,然后查找相关的单位
、数量
和金额
输入
$(function () {
$('.unit,.qty').on('change', function () {
var $parentTR = $(this).closest('tr');
//use parseFloat to parse value to float otherwise put it as 0
var unit = parseFloat($parentTR.find('.unit').val()) || 0;
var qty = parseFloat($parentTR.find('.qty').val()) || 0;
var val = parseFloat(unit * qty);
$parentTR.find('.amount').val(val);
var total = 0;
var update = false;
$('.amount').each(function () {
val = parseFloat($(this).val()) || 0;
total += val;
});
$('.result').val(total);
});
});
$(this)。同级('.qty').val()
应该是$(this)。最近('td')。同级('td')。find('qty').val()
(与.unit相同),同级应该在同一父级中<代码>数量和单位
不是同级
$(function () {
$('.unit,.qty').on('change', function () {
var $parentTR = $(this).closest('tr');
//use parseFloat to parse value to float otherwise put it as 0
var unit = parseFloat($parentTR.find('.unit').val()) || 0;
var qty = parseFloat($parentTR.find('.qty').val()) || 0;
var val = parseFloat(unit * qty);
$parentTR.find('.amount').val(val);
var total = 0;
var update = false;
$('.amount').each(function () {
val = parseFloat($(this).val()) || 0;
total += val;
});
$('.result').val(total);
});
});