You need to enable JavaScript to run this app. 如何在jQuery中使用index为表格对应行设置乘法计算结果值
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery中使用index为表格对应行设置乘法计算结果值

你现有代码的核心问题是$('.val1')、$('.val2')会选中页面中所有对应类名的元素,取值时默认只返回第一个元素的内容,赋值时会给所有匹配元素设置相同值,因此出现所有Value2字段结果一致的问题。

解决方法

方法1:按行遍历(推荐,可维护性更高)

直接遍历表格的每一行,单独处理每行的计算逻辑,不需要依赖index也能实现精准匹配:

$("#btn").on("click", function() {
    // 将输入的乘数转为数字,避免字符串拼接导致的计算错误
    const multiplier = Number($('#value').val())
    // 非法输入判断,可根据需求扩展提示
    if (isNaN(multiplier)) return

    // 遍历表格每一行
    $("table > tbody > tr").each(function() {
        // 仅查找当前行内的val1、val2元素,和其他行隔离
        const val1 = Number($(this).find('.val1').val())
        const val2 = val1 * multiplier
        $(this).find('.val2').val(val2)
    })
})

方法2:使用index匹配对应元素(符合你要求的index用法)

利用each回调返回的索引,匹配相同位置的Value1和Value2元素:

$("#btn").on("click", function() {
    const multiplier = Number($('#value').val())
    if (isNaN(multiplier)) return

    // 提前获取所有val1、val2的元素集合
    const $val1List = $('.val1')
    const $val2List = $('.val2')

    $val1List.each(function(index) {
        // index为当前val1在集合中的索引,取对应索引的val2赋值
        const val1 = Number($(this).val())
        $val2List.eq(index).val(val1 * multiplier)
    })
})

内容的提问来源于stack exchange,提问作者Vanda P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 11:15:02