Задать вопрос
RGameShow
@RGameShow
В поисках ответов на глупые вопросы

Как найти совпадение на странице и заменить с помощью javascript / jquery?

Я написал следующий код, но он ломает мне другие скрипты в контенте, да и вообще не совсем правильно все сделал, но выполняет то что нужно:
$("#content").each(function() {
    var setCookie = unescape((RegExp('cityUser=([^;]+)').exec(document.cookie) || [1, ''])[1]);
    var text = $(this).html();
    if (setCookie == 'Калининград'){
        text = text.replace("8 (495) 777-77-77", "8 (4012) 77-77-77");
    }else if(setCookie == 'Санкт-Петербург'){
        text = text.replace("8 (495) 777-77-77", "8 (812) 777-77-77");
    }
    $(this).html(text);
});


И вот так делал, ну это одно и то же но все же:
var setCookie = unescape((RegExp('cityUser=([^;]+)').exec(document.cookie) || [1, ''])[1]);
var text = $('#content');
if (setCookie == 'Калининград'){
    var replaced = text.html().replace("8 (495) 777-77-77", "8 (4012) 77-77-77");
}else if(setCookie == 'Санкт-Петербург'){
    var replaced = text.html().replace("8 (495) 777-77-77", "8 (812) 777-77-77");
}
text.html(replaced);
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
john36allTa
@john36allTa
alien glow of a dirty mind
Если в одном контейнере с номером, или у его наследников есть скрипты, то не сработает.
Else =>
var rc = setCookie == "Калининград" ? 4012 : ( setCookie == "Санкт-Петербург" ? 812 : 0),
	rt = "8 (495) 777-77-77";
if (rc) $(`body *:contains('${rt}')`).each(function(i,el){	
  if (!$(el).find(`*:contains('${rt}')`).length)
  	$(el).html($(el).html().replace(rt, rt.replace("495", rc)))
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы