仅首个word_split类生效,如何让所有同类元素均执行字符拆分逻辑
问题原因
原有代码使用document.querySelector('.word_split')仅能获取页面中第一个匹配word_split类名的元素,因此字符包裹逻辑仅对首个元素生效。
调整后可用代码
<script> // 获取页面所有带有word_split类的元素 const textWrappers = document.querySelectorAll('.word_split'); // 遍历每个元素单独处理 textWrappers.forEach(wrapper => { wrapper.innerHTML = wrapper.textContent.replace(/\S/g, "<span class='letter'>$&</span>"); }); </script>
逻辑说明
document.querySelectorAll(选择器)会返回文档中所有匹配该选择器的元素组成的NodeList集合,支持用forEach直接遍历- 遍历过程中对每个
word_split元素单独执行文本替换逻辑,和原有单元素的处理规则完全一致,不会修改原有包裹效果 - 注意:如果你的
word_split元素内存在其他HTML子元素,上述逻辑会清空原有子结构仅保留纯文本做包裹,如需保留原有嵌套结构,需额外增加递归处理子节点的逻辑
内容的提问来源于stack exchange,提问作者이영택
相关产品推荐
相关产品推荐

