2016-08-06 147 views

回答

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可能是破壞性的,如果該元素具有子元素。在這種情況下,您可以重置元素(.innerHTML)或更好的html內容,過濾元素的文本節點。