JavaScript日程展示脚本求助:完善日期与事件渲染逻辑
修复并完成日期事件展示脚本
我来帮你搞定这段脚本,先说说现有代码里的问题,再一步步实现你需要的功能:
先捋原代码的明显问题
document.getElementById()没传元素ID参数,根本获取不到目标DOM元素insert.AdjacentHTML("unionToday") + dateHTML + innerHTML;写法完全不对,得先拿到目标元素,再调用它的insertAdjacentHTML方法才行
分步实现你要的三个功能
- 获取星期数并赋值给thisDay
Date对象的getDay()方法会返回0(周日)到6(周六)的数字,直接用它就能拿到星期数:
var thisDay = thisDate.getDay();
(如果你的getEvent()函数需要的是星期名称而非数字,也可以用thisDate.toLocaleDateString('zh-CN', {weekday: 'long'})获取中文星期名,不过按你的需求先按数字处理)
- 调用getEvent()获取当日事件HTML
直接把thisDay当参数传进去,把返回的HTML存到eventHTML里:
var eventHTML = getEvent(thisDay);
(这里默认你已经写好getEvent()函数了,它能根据传入的星期数返回对应的事件HTML片段)
- 插入组合内容到指定元素
先拿到id为unionToday的元素,然后用insertAdjacentHTML的beforeend位置(就是在元素现有内容的末尾前插入),把日期HTML和事件HTML拼起来传进去:
var targetElement = document.getElementById('unionToday'); targetElement.insertAdjacentHTML('beforeend', dateHTML + eventHTML);
完整修正后的代码
// 你已经完成的部分 var thisDate = new Date("October 12, 2018"); var dateStr = thisDate.toLocaleDateString(); var dateHTML = "<h2>" + dateStr + "</h2>"; // 补充实现需求的部分 // 1. 获取星期数 var thisDay = thisDate.getDay(); // 2. 调用getEvent获取事件HTML var eventHTML = getEvent(thisDay); // 3. 插入到目标元素 var targetElement = document.getElementById('unionToday'); targetElement.insertAdjacentHTML('beforeend', dateHTML + eventHTML);
提醒下:要是getEvent()函数还没写,记得补充它的逻辑,比如根据不同星期数返回对应的事件内容哦~
内容的提问来源于stack exchange,提问作者metallica4life77
相关产品推荐
相关产品推荐

