У мене є десь на веб-сайті конкретний текст, скажімо "льодяники", і я хочу замінити всі випадки цього рядка на "зефір". Проблема в тому, що я не знаю, де саме знаходиться текст. Я знаю, що міг зробити щось на зразок:
$(body).html($(body).html().replace('lollypops', 'marshmellows'));
Це, мабуть, могло б спрацювати, але мені потрібно переписати якомога менше HTML, тому я думаю приблизно так:
- пошук рядка
- знайти найближчий батьківський елемент
- перепишіть лише найближчий батьківський елемент
- замінити це навіть в атрибутах, але не всі, наприклад замінити його в
class
, але не вsrc
Наприклад, у мене була б така структура
<body>
<div>
<div>
<p>
<h1>
<a>lollypops</a>
</h1>
</p>
<span>lollypops</span>
</div>
</div>
<p>
<span class="lollypops">Hello, World!</span>
<img src="/lollypops.jpg" alt="Cool image" />
</p>
<body>
У цьому прикладі кожна поява "льодяників" буде замінена, лише <img src="...
залишиться незмінною, і єдиними елементами, якими насправді можна було б маніпулювати, будуть <a>
і обидва <span>
s.
Хтось знає, як це зробити?