Tenho em algum lugar do site um texto específico, digamos "pirulitos", e quero substituir todas as ocorrências dessa string por "marshmellows". O problema é que não sei exatamente onde está o texto. Eu sei que poderia fazer algo como:
$(body).html($(body).html().replace('lollypops', 'marshmellows'));
Isso provavelmente funcionaria, mas preciso reescrever o mínimo de HTML possível, então estou pensando em algo como:
- procure a string
- encontre o elemento pai mais próximo
- reescrever apenas o elemento pai mais próximo
- substitua isso mesmo em atributos, mas não em todos, por exemplo, substitua em
class
, mas não emsrc
Por exemplo, eu teria uma estrutura como esta
<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>
Neste exemplo, cada ocorrência de "pirulitos" seria substituída, apenas <img src="...
permaneceria igual e os únicos elementos que seriam realmente manipulados seriam <a>
e ambos <span>
.
Alguém sabe como fazer isto?