如何使用jQuery批量修改同class表格单元格内容,从日期字符串中提取时间
问题原因
你写的代码存在两个核心错误:
- 直接调用
$('.service_date').text()会把所有匹配的.service_date元素的文本拼接成一个完整字符串,无法单独处理每个单元格的内容 substring参数要求起始索引小于结束索引,你写的substring(str1.length, str1.length-5)参数顺序颠倒,返回的是空字符串,同时你遍历的是字符串而非DOM元素集合,逻辑完全不匹配
最优实现方案
直接用jQuery的.text()方法的回调函数即可批量处理所有匹配元素,代码更简洁:
$('.service_date').text(function (_, oldText) { // 直接取字符串最后5位 return oldText.slice(-5); });
如果需要适配不同长度的时间格式(比如9:00这种4位长度的时间),推荐按逗号分割取最后一段的写法,兼容性更强:
$('.service_date').text(function (_, oldText) { // 按逗号分割后取最后一段,去除前后空格即可得到时间 return oldText.split(',').pop().trim(); });
如果你习惯用each遍历,写法如下:
$('.service_date').each(function () { const originalText = $(this).text(); $(this).text(originalText.split(',').pop().trim()); });
内容的提问来源于stack exchange,提问作者GOPAL Kumar
相关产品推荐
相关产品推荐

