在DOM中拆分和包装文本节点

时间:2019-06-14 16:08:17

标签: javascript jquery

我正在尝试将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上具有共享类。

0 个答案:

没有答案