将 html 附加到找到“包含”的文本

Posted

技术标签:

【中文标题】将 html 附加到找到“包含”的文本【英文标题】:Append html to text which find with "contains" 【发布时间】:2020-12-07 11:23:58 【问题描述】:

我想在找到它时将 html 附加到文本中:

 $( "div:contains(']')" ).append("<br>");

.. 这是错误的,因为我想定位这个特定的文本并添加 html 而不是在整个 div 上附加 html。

【问题讨论】:

【参考方案1】:

您需要迭代匹配元素具有的文本节点,并在每个文本节点的值中找到“]”。当文本节点有这个字符时,将文本节点一分为二,并在其间注入&lt;br&gt;元素。

这里有一些你可以使用的代码:

$( "div:contains(']')" ).each(function () 
    $(this).contents().each(function () 
        if (this.nodeType !== 3) return; // Only interested in text nodes
        let i; // position of the "]".
        while ((i = this.nodeValue.indexOf("]")) >= 0) 
            $(this).before(this.nodeValue.slice(0, i+1), $("<br>"));
            this.nodeValue = this.nodeValue.slice(i+1);
        
    );
);

【讨论】:

以上是关于将 html 附加到找到“包含”的文本的主要内容,如果未能解决你的问题,请参考以下文章