能否修改FullCalendar 5 dayGridMonth视图标题的h2标签为h3?
修改FullCalendar 5 dayGridMonth视图头部年月标签为h3
当然可以修改,以下是两种可行的实现方式:
方法一:自定义标题内容(推荐)
通过FullCalendar提供的titleContent回调函数,直接渲染h3标签替代默认的h2:
document.addEventListener('DOMContentLoaded', function() { var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridMonth', headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay' }, titleContent: function(arg) { return '<h3>' + arg.date.toLocaleDateString('default', { year: 'numeric', month: 'long' }) + '</h3>'; } }); calendar.render(); });
这种方法完全遵循FullCalendar的API设计,无需直接操作DOM,兼容性和稳定性更强。
方法二:DOM操作替换标签
如果不想自定义标题渲染逻辑,也可以在视图加载完成后,通过DOM选择器替换标签:
document.addEventListener('DOMContentLoaded', function() { var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridMonth', headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay' }, viewDidMount: function() { const titleH2 = calendarEl.querySelector('.fc-toolbar-title'); if (titleH2) { const titleH3 = document.createElement('h3'); titleH3.textContent = titleH2.textContent; titleH3.className = titleH2.className; titleH2.parentNode.replaceChild(titleH3, titleH2); } } }); calendar.render(); });
注意:这种方法依赖FullCalendar的DOM类名(.fc-toolbar-title),若后续版本类名变更可能失效,因此更推荐第一种方法。
内容的提问来源于stack exchange,提问作者pixelshrink
相关产品推荐
相关产品推荐

