Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2019, 17:56   #1
Wisude
Новичок
Джуниор
 
Регистрация: 16.12.2019
Сообщений: 2
По умолчанию Настройка подмены контента на странице

Добрый день! Такой вопрос: на сайте нужно настроить подмену почтовых адресов в зависимости от источника посетителя (тем кто приходит с органического поиска - одна почта, тем кто с рекламы - другая, и т.д.).

В интернете нашел простое рабочее решение данной задачи (скрипт sourcebuster). Но, есть один вопрос. Сам я в javascript не разбираюсь вообще. Настраивал все по инструкции (ссылку могу скинуть на нее).

Вопрос в следующем: подмена нужного элемента (в данном случае почтовый адрес на странице) происходит по адресу селектора, что не очень удобно если идентичных элементов на сайте много. Например, вот так выглядит текущий код сейчас:

Код:
<script>
if ( sbjs.get.current.src === "direct_search") {

jQuery('#block-append-1 > div > div > div.block-append-text > div.block-append-text-left > div.mail-icon > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');

jQuery('body > div.con-box > div > div.content > div.block-append-1 > div > div.block-append-text > div.block-append-text-left > div.mail-icon > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');
  
jQuery('#block-append-1 > div > div > div.block-append-text > div.block-append-text-left > div.mail-icon').replaceWith('<div class="mail-icon"><a href="mailto:test@test.ru">test@test.ru</a></div>');

jQuery('body > div.con-box > div > div.content > table:nth-child(5) > tbody > tr:nth-child(3) > td:nth-child(2) > p > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');
  
jQuery('body > div.con-box > div > div.content > table:nth-child(27) > tbody > tr > td:nth-child(1) > table > tbody > tr:nth-child(4) > td:nth-child(2) > p > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');
  
jQuery('body > div.con-box > div > div.content > table:nth-child(27) > tbody > tr > td:nth-child(2) > table > tbody > tr:nth-child(2) > td:nth-child(2) > p > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');  
  
jQuery('body > div.con-box > div > div.content > ul:nth-child(13) > li:nth-child(2) > span > a  ').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');    
  
jQuery('body > div.con-box > div > div.content > ul:nth-child(26) > li:nth-child(2) > span > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');   
  
jQuery('body > div.con-box > div > div.content > ul:nth-child(38) > li:nth-child(2) > span > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');
  
jQuery('body > div.con-box > div > div.content > ul:nth-child(50) > li:nth-child(2) > span > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');  

}
</script>
Каждый почтый адрес, который нужно подменять - прописан в данном коде (адрес его селектора). Это не удобно, т.к. если нужно настроить подмену для еще одного адреса, его (адрес его селектора) нужно прописывать в данном коде. Гораздо удобнее бы было настроить подмену, например, через тег div, указав скрипту делать подмену всех элементов, которые обернуты данным тегом. Например, все почтовые адреса на сайте обернуты в тег: div class="podmena"

Как настроить подмену по тегу div, а не адресу селектора? Как должен выглядеть код?
Wisude вне форума Ответить с цитированием
Старый 01.01.2020, 17:50   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,156
По умолчанию

Код:
$('div.you_class > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');
как то так
ADSoft вне форума Ответить с цитированием
Старый 06.01.2020, 14:46   #3
Wisude
Новичок
Джуниор
 
Регистрация: 16.12.2019
Сообщений: 2
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Код:
$('div.you_class > a').replaceWith('<a href="mailto:test@test.ru">test@test.ru</a>');
как то так
Спасибо, работает. Одно уточнение. Если у этих элементов на сайте которые я подменяю (в данном случае это почтовые адреса), у них не один class а несколько (например, 2-3), как их перечислить в условии можно?

Пример:
Код:
<div class="test-11"><a href="mailto:1@mail.ru">1@mail.ru</a></div>
<div class="test-11"><a href="mailto:1@mail.ru">1@mail.ru</a></div>
<div class="test-12"><a href="mailto:1@mail.ru">1@mail.ru</a></div>
<div class="test-13"><a href="mailto:1@mail.ru">1@mail.ru</a></div>
Wisude вне форума Ответить с цитированием
Старый 06.01.2020, 16:39   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,156
По умолчанию

ну вы хоть основы прочтите про CSS, в JQ именно нотация CSS...
Код:
$('div.you_class > a, div.you_class2 > a')
а вообще - что мешает добавить им через пробел еще один класс?
Код:
"test-11 you_class"
и оставить JQ как я привел )))
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Настройка количества сообщений на странице форума min@y™ О форуме и сайтах клуба 6 16.09.2014 13:31
Насчёт подмены картинок hover pa6kevi4 HTML и CSS 5 30.11.2010 23:25
Настройка web сервера на отдачу контента Mixasik PHP 6 18.12.2009 22:51
скрипт подмены числа, нужна помощь cityline JavaScript, Ajax 1 14.12.2009 13:18
Ремэпинг без подмены IP. Как? Pochemuk Работа с сетью в Delphi 15 08.04.2008 12:10