2016-08-06 18 views

Antwort

3

Das Code-Snippet, das Sie gepostet haben, ist eine der Optionen. Aber Sie müssen den Textinhalt des Elements zurücksetzen.

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

Hier ist eine nicht-jQuery Alternative:

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

Bitte beachten Sie, dass .textContent Zurücksetzen destruktiv sein kann, wenn das Element untergeordnete Elemente hat. In diesem Fall können Sie den HTML-Inhalt des Elements zurücksetzen (.innerHTML) oder besser, filtern Sie die Textknoten des Elements.

Verwandte Themen