2016-08-06 7 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 может быть разрушительным, если элемент имеет дочерние элементы. В этом случае вы можете сбросить содержимое html элемента (.innerHTML) или лучше, фильтровать текстовые узлы элемента.

Смежные вопросы