我想替换字符" @" by"(at)"在包含@ character的所有span标记内。
有什么像$('span:contains("@")').text().replace
?
答案 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
)或更好,过滤元素的文本节点。