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

如何修改JQuery代码实现仅将数据批量应用至月度工作日?

解决方案

要实现仅填充工作日(周一至周五)的需求,我们需要先提取第一天的模板数据,再逐个判断每个日期是否为工作日,仅对工作日进行填充,周末则清空内容。以下是修改后的代码:

修改后的JavaScript代码

$('#elemento').click(function() {
  // 提取第一个日期的模板数据
  const firstDayContainer = $('#dia');
  const templateCheckboxes = firstDayContainer.find('input[type="checkbox"]').map(function() {
    return $(this).prop('checked');
  }).get();
  const templateTexts = firstDayContainer.find('input[type="text"]').map(function() {
    return $(this).val();
  }).get();

  // 遍历所有日期容器
  $('[id^="dia"]').each(function() {
    const $container = $(this);
    // 提取日期字符串并转为Date对象
    const dateText = $container.find('input[type="checkbox"]').next().text().trim();
    const date = new Date(dateText);
    const dayOfWeek = date.getDay(); // 0=周日, 1=周一, ..., 6=周六

    // 获取当前容器的所有checkbox和text输入
    const $checkboxes = $container.find('input[type="checkbox"]');
    const $texts = $container.find('input[type="text"]');

    if (dayOfWeek >= 1 && dayOfWeek <= 5) {
      // 工作日:填充模板数据
      $checkboxes.each(function(index) {
        $(this).prop('checked', templateCheckboxes[index]);
      });
      $texts.each(function(index) {
        $(this).val(templateTexts[index]);
      });
    } else {
      // 周末:清空内容
      $checkboxes.prop('checked', false);
      $texts.val('');
    }
  });
});

代码说明

  • 提取模板数据:从第一个日期容器(#dia)中获取所有复选框的选中状态和文本框的值,作为填充模板。
  • 日期判断:通过Date.getDay()方法获取日期对应的星期数,1到5为工作日,0(周日)和6(周六)为周末。
  • 填充/清空逻辑:工作日使用模板数据填充,周末则将所有复选框设为未选中、文本框清空。

原HTML代码无需修改

你的HTML结构可以保持不变,代码会通过[id^="dia"]选择器匹配所有日期容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:35:41