如何使用.slice格式化HTML日期内容并保留N/A?
解决方案
核心思路
别用:contains选元素,它匹配包含指定文本的元素,很容易误判。直接遍历所有.content元素,先判断内容是不是N/A,不是的话就按日期格式处理,用.slice截取对应部分重组即可。
jQuery实现代码
$('.content').each(function() { const rawText = $(this).text().trim(); // 只处理非N/A且带连字符的日期文本 if (rawText !== 'N/A' && rawText.includes('-')) { const year = rawText.slice(0, 4); const month = rawText.slice(5, 7); $(this).text(`${month}/${year}`); } });
原生JavaScript实现代码
如果项目里没用到jQuery,用原生JS也能搞定:
document.querySelectorAll('.content').forEach(element => { const rawText = element.textContent.trim(); if (rawText !== 'N/A' && rawText.includes('-')) { const year = rawText.slice(0, 4); const month = rawText.slice(5, 7); element.textContent = `${month}/${year}`; } });
代码说明
- 遍历所有
.content元素,先把文本去首尾空白,避免空格干扰判断 - 只处理不是
N/A且包含-的内容(符合给出的日期格式特征) - 用
.slice(0,4)截取日期的前4位作为年份,比如2026-01-31-08:00里的2026 - 用
.slice(5,7)截取第5到第7位(也就是第一个-后面的两位)作为月份,对应01 - 最后把月份和年份拼成
月/年格式替换原内容
内容的提问来源于stack exchange,提问作者KyleD
相关产品推荐
相关产品推荐

