Ich möchte Zeichen "@" durch "(at)" in allen span-Tags ersetzen, die @ Zeichen enthalten. Gibt es etwas wie $('span:contains("@")').text().replace
?jQuery ersetzen Zeichenfolge eines Elements
0
A
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.