【问题标题】:JQuery replace portion of text in <p> with an <img>JQuery 用 <img> 替换 <p> 中的部分文本
【发布时间】:2013-09-20 21:16:15
【问题描述】:

我的身体里有这段代码:

<p>
    hello ok hello no
<p>

<p>
    ok hello ok ko 
<p>    

我想用&lt;img&gt;标签&lt;img src="ok.png" alt="good word"/&gt;替换每个&lt;p&gt;的文本'ok'

这样可以吗?

注意:我必须将此功能应用于其他可能包含撇号和/或引号的文本

【问题讨论】:

  • 哪种编程语言?
  • @FokkoDriesprog 它在标签中说。
  • 我知道这可能是一个古怪的约束,但这应该是一个服务器端任务。
  • “其他一些可以包含撇号和/或引号的文本”是什么意思?
  • Pills:我的意思是例如替换此文本:(我已经 blablabla,我已经 blallllll)。用我有替换我有

标签: javascript jquery html css


【解决方案1】:

使用each:

$('p').each(function() {
    this.innerHTML = this.innerHTML.replace(/\bok\b/g, '<img src="ok.png" alt="good word"/>')
})

我使用了/\bok\b/,这样token 这样的东西就不会匹配了。 \b 表示“单词边界”。

Here's a fiddle.

【讨论】:

  • 感谢您的解决方案,但我有这个结果:它只替换每个

    的第一个“ok”,并在替换后添加断线

  • 我试着把“ok”这个词改成“你好吗”,我改不了。如果您有替换方法的文档链接,请分享,因为我只找到了 replaceWith 的文档
  • @tchiko `replace 不是 jQuery,它是纯 JS。
  • 在 jquery 中不存在这个方法?
【解决方案2】:

我个人建议:

$('p').html(function(i,h){
    return h.replace(/\bok/g,'<img src="ok.png" alt="good word" />');
});

JS Fiddle demo.

参考资料:

【讨论】:

    【解决方案3】:

    希望对你有帮助

       var x=$('p').html();
        var n=x.replace("ok","<img src='ok.png' alt='good word'>"); 
        $('p').html(n);
    

    【讨论】:

    • 这会将所有ps 替换为第一个p 的文本。你试过了吗?您可以尝试在此页面上运行它,看看它为什么不起作用。
    【解决方案4】:

    尝试替换 - jquery

    $( "<p>" ).replaceWith( '<img src="ok.png" alt="good word"/>');
    $( "</p>" ).replaceWith( "" );
    

    更多信息请阅读 jquery 文档 http://api.jquery.com/replaceWith/

    【讨论】:

    • OP 试图只用图像替换“ok”这个词,无论如何这个答案是错误的,因为$('&lt;p&gt;') 创建了一个p 元素,而第二个元素完全没有任何作用。
    猜你喜欢
    • 2019-06-26
    • 1970-01-01
    • 2012-10-28
    • 2019-04-27
    • 1970-01-01
    • 2012-01-05
    • 2012-01-05
    • 1970-01-01
    • 2017-02-26
    相关资源
    最近更新 更多