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

如何通过JQuery查询DOM生成指定格式的JavaScript数组?

解决jQuery生成moment日期数组的问题

我看了你的代码,问题其实很明显——你在设置obj_date.end的时候,错误地使用了ndate_group[0],而不是对应的结束日期索引ndate_group[1]。这就导致每个对象的start和end都是同一个日期,不符合你想要的结果。

另外,还有几个小细节可以优化,让代码更健壮、可读性更强:

下面是修正后的完整代码:

var availFruits = [];
$(".avails").each(function(i, element) {
    // 分割日期对,确保每个.avails的value格式是"DD/MM/YYYY,DD/MM/YYYY"
    var datePair = $(element).val().split(",");
    // 检查分割后是否有两个有效日期值,避免格式错误导致的问题
    if (datePair.length === 2) {
        var dateObj = {
            start: moment(datePair[0].trim(), "DD/MM/YYYY"),
            end: moment(datePair[1].trim(), "DD/MM/YYYY")
        };
        console.log(dateObj);
        availFruits.push(dateObj);
    } else {
        console.warn("无效的日期格式:" + $(element).val());
    }
});

额外说明:

  • 添加了格式校验:增加了if (datePair.length === 2)的判断,避免因为DOM元素值格式错误导致生成无效的日期对象
  • 去除空格:用.trim()处理分割后的日期字符串,防止用户输入时不小心加了空格影响moment解析
  • 变量名优化:把avail_fruits改成驼峰式的availFruits,把objer改成element,更符合JavaScript的命名规范

这样修改后,就能生成你想要的格式的数组了,每个对象都会包含正确的起始和结束moment日期对象。

内容的提问来源于stack exchange,提问作者Intekhab Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:33:52