На сайте есть текст, например такой и он может встречаться несколько раз: %%text%%
Как при помощи JavaSrcipt/jQuery заменить ВСЕ вхождения этого текста на:
<span class="class_name"></span>
Получите элемент, в котором может встречаться подобный шаблон (в примере я взял body
целиком), после чего обратитесь к свойству innerHTML
, чтобы получить содержимое тега, потом при помощи замены по регулярному выражению замените все вхождения %%text%%
на другую подстроку:
var source = document.body.innerHTML;
var changed = source.replace(/%%text%%/g, '<span class="class_name"></span>');
document.body.innerHTML = changed;
%%text%% Что-то еще %%text%%
<div>%%text%% внутри div</div>
<em><strong>%%text%% во вложенном теге</strong></em>
А если вы имели в виду, что строка, подлежащая замене не строго равна %%text%%
, то стоит уточнить, какие значения могут находиться между знаками процента (только буквы, или буквы и цифры, может быть символы нижнего подчеркивания и т.п.).
Если надо заменить ЛЮБОЙ текст внутри %% %%, тогда так:
const toReplace = $('.to-replace');
for(let i = 0; i < toReplace.length; i++){
$(toReplace[i]).text($(toReplace[i]).text().replace(/%%[^%]*%%/g, '<span class="class_name"></span>'));
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="to-replace"> Тут меняем %%text text%%
</div>
<div class="none"> Тут останется %%text%%
</div>
<div class="to-replace"> Нечего менять изменений
</div>
<div class="to-replace"> Несколько вхождений %%text%% %%aaa%% %%12-23%%
</div>
По всему сайтку поиск организовывать не эффективно, давайте ограничимся для примера div-ами (их может быть несколько!) с классом "to-replace", и воспользуемся функцией replace с нужным нам регулярным выражением. Тогда получим:
const toReplace = $('.to-replace');
for(let i = 0; i < toReplace.length; i++){
$(toReplace[i]).text($(toReplace[i]).text().replace(/%%text%%/g, '<span class="class_name"></span>'));
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="to-replace"> Тут меняем %%text%%
</div>
<div class="none"> Тут останется %%text%%
</div>
<div class="to-replace"> Нечего менять изменений
</div>
<div class="to-replace"> Несколько вхождений %%text%% %%text%% %%text%%
</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
есть два сервера и два идентичных (переносилось методом создания архива всех сорцов и распаковки) проектаВ одном строка не выдает ошибку,в...
Здравствуйте , допустим есть такая таблица в mysql
Здравствуйте! Где и как WP составляет массив всех постов(где находится запрос к бд)? Есть такой код для вывода всех постов: