【问题标题】:jQuery globally replace string, but not in the Title or Alt attributesjQuery 全局替换字符串,但不在 Title 或 Alt 属性中
【发布时间】:2013-06-29 21:19:21
【问题描述】:

我编写了一些 jQuery,它遍历 div 中的所有元素,并仅使用 标签替换和设置特定字符串的样式,效果很好,代码如下:

var regex = /some text/gi;
$(".container *").each(function () {
    $(this).html($(this).html().replace(regex, '<em><strong>Some</strong> Text</em>'));
});

我遇到的问题是这也会影响所有 Title 和 Alt 属性中的文本,这是我不想要的,因为它们无法设置样式并且最终显示为 Some 文字

我尝试在替换之前将原始 Title/Alt 值存储在变量中,然后将它们设置回原始值,但似乎当属性值包含 标签时,它们完全无法访问。我什至无法删除它们并重新添加它们,这看起来很奇怪。

谁能告诉我有没有办法解决这个问题?

【问题讨论】:

    标签: jquery string replace html


    【解决方案1】:

    你试过用 $(this).text().replace 代替 $(this).html().replace 吗?

    这样你只替换元素的实际文本而不是所有的 html。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 2019-09-23
    • 1970-01-01
    • 2012-12-09
    相关资源
    最近更新 更多