将 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 附加到找到“包含”的文本的主要内容,如果未能解决你的问题,请参考以下文章

将文本附加到包含文本的现有字段

将不可编辑的文本附加到输入的末尾?

将一些文件附加到 MIME 多部分电子邮件

如何将文本附加到特定的php数组值

附加到文本文件时,非英文字符会损坏

如何使用 PHP 将文本附加到特定标签内的外部 html 文件?