如何修改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
相关产品推荐
相关产品推荐

