You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JQuery如何向数组插入多个元素?表单表格多行取值仅首行生效问题

问题修复方案

错误点梳理

  • DOM选择器匹配错误:HTML中tbody的id为entrybody,JS代码中使用了错误的选择器$("#productbody tbody tr"),无法正确匹配到表格行
  • 数组赋值逻辑缺陷:仅在循环外为数组索引0的位置创建了空对象,count自增后未给后续索引创建空对象,导致第二行及以后赋值时触发undefined报错
  • 冗余的count变量维护:完全可以直接用数组push方法添加元素,无需手动维护索引计数避免出错

修正后完整JS代码

$(function() {
    $.post("action.php", function(data) {
        $("[name='title']").val(data.title);
        $("[name='body']").val(data.body);
    }, "json");
    setInterval(function() {
        var itemlist = [];
        var title = $("[name='title']").val();
        var body = $("[name='body']").val();

        // 修正选择器,直接匹配entrybody下的所有tr
        $("#entrybody tr").each(function() {
            var that = $(this);
            var prdCode = that.find("[name='prd_code']").val();
            if (prdCode.length !== 0) {
                // 每次符合条件直接push新对象到数组即可
                itemlist.push({
                    code: prdCode,
                    name: that.find("[name='prd_name']").val(),
                    cond: that.find("[name='prd_cond']").val()
                });
            }
        });

        console.log(itemlist);

    }, 2000);
});

效果说明

修改后可以正常获取所有填写了商品编码的行数据,不会再出现仅能读取第一行、或者第二行输入时报错的问题。

内容的提问来源于stack exchange,提问作者Hai Yaa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 08:27:02