Mam gdzieś na stronie określony tekst, powiedzmy „lizaki”, i chcę zamienić wszystkie wystąpienia tego ciągu na „pianki”. Problem w tym, że nie wiem, gdzie dokładnie jest tekst. Wiem, że mógłbym zrobić coś takiego:
$(body).html($(body).html().replace('lollypops', 'marshmellows'));
To prawdopodobnie by zadziałało, ale muszę przepisać jak najmniej kodu HTML, więc myślę o czymś takim:
- wyszukaj ciąg
- znajdź najbliższy element nadrzędny
- przepisz tylko najbliższy element nadrzędny
- zamień to nawet w atrybutach, ale nie we wszystkich, na przykład zamień to w
class
, ale nie wsrc
Na przykład miałbym taką strukturę
<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>
W tym przykładzie każde wystąpienie „lizaków” zostanie zastąpione, <img src="...
pozostanie tylko takie samo, a jedynymi elementami, które faktycznie zostaną zmanipulowane, będą <a>
i oba <span>
.
Czy ktoś wie, jak to zrobić?