我正在尝试将DOM上包含与正则表达式匹配的任何文本节点拆分为多个元素。
为了实现这一点,我尝试使用jQuery的wrap方法,但是它返回传入的现有节点,而不是新创建的元素或未定义的节点。
let textNodes = elems.contents()
.filter(function () {
return this.nodeType === 3 && this.textContent.match(/[A-Z]+-[0-9]+/)
});
for(let node of $.makeArray(textNodes)) {
const splitText = node.wholeText.split(/[A-Z]+-[0-9]+/);
// wrap each node separately into span tags and add a shared class to any text nodes that match the /[A-Z]+-[0-9]+/ regex
for(let text of splitText) {
if(text.match(/[A-Z]+-[0-9]+/) {
// add a class and wrap into a span tag. Set this node next to the last wrapped node on the DOM
} else {
// place into a span tag. Set this node next to the last wrapped node on the DOM
}
}
}
我想在DOM上有任何包含匹配项的文本,然后将其拆分为元素,而与之匹配的文本则具有自己的元素,并在DOM上具有共享类。