jQuery替换元素的字符串

时间:2016-08-06 21:36:44

标签: jquery replace

我想替换字符" @" by"(at)"在包含@ character的所有span标记内。 有什么像$('span:contains("@")').text().replace

1 个答案:

答案 0 :(得分:3)

您发布的代码段是其中一个选项。但是您需要重置元素的文本内容。

$('span:contains("@")').text(function(_, text) {
     return text.replace(/@/g, '(at)');
});

这是一个非jQuery替代方案:

[].forEach.call(document.querySelectorAll('span'), function(span) {
    if ( span.textContent.includes('@') ) {
       span.textContent = span.textContent.replace(/@/g, '(at)');
    }
});

请注意,如果元素包含子元素,则重置.textContent可能具有破坏性。在这种情况下,您可以重置元素的html内容(.innerHTML)或更好,过滤元素的文本节点。