JavaScript: замена (всех) определенных слов на веб-странице - PullRequest
0 голосов
/ 21 ноября 2018

У меня проблемы с кодом для расширения Chrome.Код должен заменить слово другим.Это делает это, однако, я хотел бы только заменить слово, если оно находится в определенных тегах, таких как <p></p> или тегах заголовка.На данный момент он заменяет все слова в файле HTML внутри <body></body>.Это иногда мешает HTML-коду и может нарушить некоторые функции веб-сайта.Вот что у меня сейчас.

document.body.innerHTML = document.body.innerHTML.replace(newRegExp("old", "g"), "new");

Спасибо за помощь!

1 Ответ

0 голосов
/ 21 ноября 2018

Так что просто переберите все элементы, которые вам нужны, и выполните замену только этих элементов.

// Get all the elements that you care about into an array
let elements = Array.prototype.slice.call(document.querySelectorAll("p, header"));

// Loop over the items in the array
elements.forEach(function(el){
  // Do the replace on the element
  el.textContent = el.textContent.replace(/text/g, "letters");
});
<header>This is some text in a header</header>
<h1>This is some text in an h1</h1>
<div>This is some text in a div</div>
<p>This is some text in a p</p>
<div>This is some text in a div</div>
<div>This is some text in a div
   <p>This text is inside of a p with lots of text</p>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...