javascript - 从下一个跨度中选择文本值

标签 javascript jquery

我有一个基于 ajax 响应动态生成输入字段的表单。我想做的是将第一个跨度的 tet 值乘以用户输入,并在第三个跨度中显示结果。我的功能在 html 表结构中正常工作,但无法使其在跨度上工作。

这是我的工作 fiddle 的链接。 https://jsfiddle.net/zj5bca4g/1/

这是我遇到的问题,我试图保持相同的结构。 https://jsfiddle.net/fg5ygrke/

<span class="cost" name="cost[]"   value="5">5</span>
<input type="text" class="quantity" name="quantity[]" value="">
<span class="total" name="total[]" >0</span>
<br/>

<span class="cost" name="cost[]"   value="5">5</span>
<input type="text" class="quantity" name="quantity[]" value="">
<span class="total" name="total[]" >0</span>
<br/>

<span class="cost" name="cost[]"   value="5">5</span>
<input type="text" class="quantity" name="quantity[]" value="">
<span class="total" name="total[]" >0</span>

还有 JS。

$('.quantity').on('input', function() {
  var $tr = $(this).next('span');
  var cost = parseFloat($tr.find('.cost').text()) || 0;
  var quantity = parseInt($(this).val(), 10) || 0;
  $tr.find('.total').text('Total: ' + cost * quantity);
})

最佳答案

您可以使用

.next()

.prev()

JQuery的功能

类似这样的事情

$('.quantity').on('input', function() {
  var $tr = $(this).next('span');
  var cost = parseFloat($(this).prev('.cost').text());
  var quantity = parseInt($(this).val());
  $($tr).text('Total: ' + cost * quantity);
})

这是一个 jsFiddle

https://jsfiddle.net/fg5ygrke/2/

关于javascript - 从下一个跨度中选择文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43901929/

相关文章:

javascript - 阻止用户离开网页,提交表单时除​​外

javascript - 未知的 Ajax 输出

javascript - 如何监听 onclick 事件然后添加另一个 onclick 事件

javascript - Jquery DataTables Live DOM 排序在复选框列上不起作用

javascript - 在javascript block 中遍历twig数组

javascript - Javascript 行为委托(delegate)模式中的变量隐私

javascript - 灯箱无法正常工作

javascript - Asp.net 在输入文本框中屏蔽信用卡号,然后验证和处理信用卡号

javascript - 检索查询字符串参数的优雅方法

javascript - MVC返回多个对象到jquery post数据