Замена (replace) текста в определенном элементе?

Есть страница в на которую выводится куча таблиц с данными
Есть скрипт, который на странице с этими таблицами находит определенные слова, и заменяет (добавляет) им тэг div
<script type="text/javascript">
var htmlText = document.body.innerHTML;
var newHtmlText = htmlText.replace(/Барнаул/g, '<div class="user-yellow">Барнаул</div>').replace(/Уссурийск/g, '<div class="user-red">Уссурийск</div>');
document.body.innerHTML = newHtmlText;
</script>


Одна проблема, на данной странице есть поиск, и если в поиске написать "Барнаул", то в результате поиска всё съезжает (т.к. в поисковой строке идёт также замена на Барнаул)

Подскажите, как сделать чтобы этот скрипт менял значения только в самих таблица
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
@zkrvndm
Боты, парсеры, расширения
Вместо
document.body.innerHTML;
Укажите
document.querySelector('.class').innerHTML;
Где вместо class надо указать класс элемента внутри которого надо замену сделать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Asokr
Не body, a ваша таблица в эту строчку
var htmlText = document.body.innerHTML;
Ну, и соответственно тут тоже замена на таблицу, вместо body
document.body.innerHTML = newHtmlText;
Ответ написан
Ваш ответ на вопрос

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

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