Как с помощью JS сделать замену на странице в тексте, но не в атрибутах тегов?

Как на странице с помощью JS сделать замену в тексте, но не в атрибутах тегов? А именно, надо в тексте все последовательности из цифр обернуть в теги span.
Если менять в innerHTML, то замены происходят и в атрибутах.
Если менять в innerText, то пропадают вложенные теги.
  • Вопрос задан
  • 473 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
По хорошему, такое надо делать на стороне сервера, с кешированием. т.к. в js мы рискуем потерять привязку событий к элементам, да и не уверен, что это будет отзывчиво и без бликов всяких.
Есть на гитхабе готовое решение, не очень быстрое, но под вашу задачу подходит отлично. findAndReplaceDOMText
Использовать вот так
findAndReplaceDOMText(document.getElementById('txt'), {
  find: /\d+/g, // искомая строка
  wrapClass: 'myclass', // класс элемента, в который будем оборачивать текст
  wrap: 'span' // название тега, в который будем оборачивать текст.
});

живой пример
jsfiddle.net/er0w4nxm/1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы