У меня есть где-то на сайте определенный текст, пусть говорят "lollypops", и я хочу заменить все вхождения этой строки на "marshmellows". Проблема в том, что я не знаю, где именно текст. Я знаю, что могу сделать что-то вроде:
$(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>
В этом примере каждое появление "lollypops" будет заменено, только <img src="...
останется прежним, и единственными элементами, которые будут фактически манипулировать, будет <a>
и оба <span>
s.
Кто-нибудь знает, как это сделать?