划分<td>通过输入值
Dividing a column of <td> by a an input value
我被我试图解决的当前项目难住了。我可以在控制台中打印出我想要的确切结果,但我不知道如何将这些结果插入表中各自的tds
中。
var calc = $('.calc'),
odds = $('.weight');
$(document).on('keyup keydown', '.calc', function(e){
var curVal = calc.val();
$(document).find('.weight').each(function(){
var oddsVal = ($(this).text() / curVal);
console.log(oddsVal);
});
});
当用户在输入中输入数据时,我试图将权重列的每个单元格中的文本除以input.calc
,以便实时更新。
你可以在这里看到它的Fiddle,结果打印到控制台。如何使权重列中的每个单元格都更新?
提前感谢您的帮助!
问题是在输入值之前更新单元格,这导致"无限"被创建了4次。您甚至可以在控制台日志中看到它。
相反,在执行函数之前,请确保calc中有一个值。
此外,如果您重复更改calc字段,它将根据新替换的值进行新的计算,这似乎不是正确的行为。因此,相反,在页面加载时捕获原始值,并在计算中使用这些值:
var originalWeights = getOriginalWeights();
function getOriginalWeights() {
var weights = [];
$('.weight').each(function(index) {
weights[index] = $(this).text();
});
return weights;
}
$(document).on('keyup keydown', '.calc', function(e){
if (!calc.val()) return;
var curVal = calc.val();
$(document).find('.weight').each(function(index){
var oddsVal = (originalWeights[index] / curVal);
$(this).text(oddsVal);
});
});
Fiddle
要解决这个问题,您必须编辑HTML和JS代码。您应该将原始值存储在data
属性中,然后使用jquery-each函数的value
参数在循环中打印它。这是你编辑的小提琴,希望对你有所帮助!
http://jsfiddle.net/ch1qui/LoLrotkn/3/
您应该从事件委派中删除keydown
事件,因为输入框上的值在keydown
期间不可用。同样具有keyup
和keydown
将同时触发事件,触发每个块两次。此外,您不需要全局声明var calc = $('.calc'),
,因为该元素在文档的事件目标期间是可用的。
$(document).on('keyup', '.calc', function(e){
var curVal = $(this).val();
$('table td.weight').each(function(){
var oddsVal = $(this).text() / curVal;
alert(oddsVal);
});
});
示例:http://jsfiddle.net/LoLrotkn/4/
相关文章:
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- 在td JavaScript中获取隐藏的输入值
- 在 jquery 中的 TR 中查找 td 的所有输入
- jQuery选择器,用于查找包含具有特定值的TD输入的TR
- 在指定的td中查找输入字段的特定值
- 获取不带输入标记的Td-innert html-Jquery
- 根据输入字段中键入的数字更改td单元格的颜色
- 验证输入,更新<td>属性以匹配验证状态
- 获取 td 值并通过 jquery 将其打印在输入文本中
- jQuery 将类附加到输入的父 TD(如果存在 val)
- 带有输入的 td 中的 Jquery 表导航
- 如何通过jQuery将输入文本框更改为表TD
- Jquery 选择在 TD 内的输入
- jQuery从TD(HTML表格)内的输入字段中获取值
- 如何从td中删除显示的值并替换为输入字段
- 找到一个特定的td,并使用jquery将该值分配给文本输入
- 划分<td>通过输入值
- 双击时将输入文本添加到html表td中
- 迭代td内的每个输入字段
- 将输入值应用于其所有 TD InnerHTML