Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.11.2017, 13:02
Аспирант
Отправить личное сообщение для Exhaust_ Посмотреть профиль Найти все сообщения от Exhaust_
 
Регистрация: 16.09.2014
Сообщений: 52

Переменные в html
Есть код. Таких блоков в странице будет много, у них разные id, типа PANEL-2, PANEL-3...
В каждом таком блоке есть заголовок ЗНАЧЕНИЕ+ПЕРЕМЕННОЙ (он первый в тексте примера), и ссылки в которых используется значение этого заголовка (они ниже и их будет много).

Вопрос. Как сделать так чтобы значение заголовка автоматически вставлялось в ссылки с помощью какой нибудь js-переменной?
Можете помочь с написанием скрипта? Спасибо.

<div class="panel panel-default" id="PANEL-2">
	<div class="panel-heading">
		 <a class="panel-title collapsed" data-toggle="collapse" data-parent="#panel-2" href="#panel-element-2">ЗНАЧЕНИЕ+ПЕРЕМЕННОЙ</a>
	</div>
	<div id="panel-element-2" class="panel-collapse collapse">
		<div class="panel-body">
			<a href="http://google.com/ЗНАЧЕНИЕ+ПЕРЕМЕННОЙ">ссылка 1</a>
			<a href="http://google.com/ЗНАЧЕНИЕ+ПЕРЕМЕННОЙ">ссылка 2</a>
			...
		</div>
	</div>
</div>

Последний раз редактировалось Exhaust_, 02.11.2017 в 13:08.
Ответить с цитированием
  #2 (permalink)  
Старый 02.11.2017, 13:16
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Сообщение от Exhaust_
ЗНАЧЕНИЕ+ПЕРЕМЕННОЙ
конкретнее
Сообщение от Exhaust_
автоматически вставлялось в ссылки
куда именно? В текст ссылки или атрибут href?
Ответить с цитированием
  #3 (permalink)  
Старый 02.11.2017, 13:19
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Ты хочешь текст отсюда
Сообщение от Exhaust_
<a class="panel-title collapsed" data-toggle="collapse" data-parent="#panel-2" href="#panel-element-2">ЗНАЧЕНИЕ+ПЕРЕМЕННОЙ</a>
Куда-то поместить еще?

У тебя серверноего языка нет совсем?
Не понятно зачем ты преобразовываешь страницу клиентским скриптом...
Ответить с цитированием
  #4 (permalink)  
Старый 02.11.2017, 14:35
Аспирант
Отправить личное сообщение для Exhaust_ Посмотреть профиль Найти все сообщения от Exhaust_
 
Регистрация: 16.09.2014
Сообщений: 52

Понял, не раскрыл тему. Смотрите

1. Есть такая ссылка, у нее есть анкор. Значение этого анкора скрипт должен вставить в "другие ссылки".

<a class="panel-title collapsed" data-toggle="collapse" data-parent="#panel-2" href="#panel-element-2">КЛЮЧЕВОЕ+СЛОВО</a>


2. Это "другие ссылки". На том месте где в них написано "КЛЮЧЕВОЕ+СЛОВО" должен быть код который вставляет наш анкор.

<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542360">ссылка 1</a>
<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542361">ссылка 2</a>
...


3. Еще есть блоки с id-шниками типа PANEL-2, PANEL-3.... В блок завернуто все выше перечисленное. И фишка в том что таких блоков будет много и они не должны мешать друг другу работать со скриптом.

<div class="panel panel-default" id="PANEL-2">
...
</div>


Кажись все.
Ответить с цитированием
  #5 (permalink)  
Старый 02.11.2017, 14:46
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Exhaust_
Еще есть блоки с id-шниками типа PANEL-2, PANEL-3....
Если они обрабатываются одинаково, то у них должен быть какой-то одинаковый класс.
Искать элементы с ИД начинается на PANEL-, считаю моветон...

И опять не понятно почему сервер сразу не делает страницу какой нужно. Почему ее вообще переделывать на клиенте?
Ответить с цитированием
  #6 (permalink)  
Старый 02.11.2017, 15:02
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Exhaust_,
Понятия немного сбивают с толку. Анкор в html - это #panel-element-2, а подразумевался текст ссылки, как понял я.

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>

	<div class="panel panel-default" id="PANEL-2">
		<div class="panel-heading">
			<a class="panel-title collapsed" data-toggle="collapse" data-parent="#panel-2" href="#panel-element-2">раз+два</a>
		</div>
		<div id="panel-element-2" class="panel-collapse collapse">
			<div class="panel-body">
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542360">ссылка 1</a>
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542361">ссылка 2</a>
			</div>
		</div>
	</div>

	<script>
		(function(parent, title, links, re, window, document) {
			parent = document.querySelectorAll(parent);
			[].forEach.call(parent, function(elem, indx) {
				title = elem.querySelector(title);
				links = elem.querySelectorAll(links);
				[].forEach.call(links, function(link, indx) {
					var href = decodeURI(link.href);
					link.href = href.replace(new RegExp(re), title.textContent.trim());
				});
			});
		})('.panel', '.panel-title', '.panel-body > a', 'КЛЮЧЕВОЕ\\+СЛОВО', window, document);
	</script>	

</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 02.11.2017, 15:19
Аспирант
Отправить личное сообщение для Exhaust_ Посмотреть профиль Найти все сообщения от Exhaust_
 
Регистрация: 16.09.2014
Сообщений: 52

Rasy, почти то что нужно. Работает замечательно если <div id="PANEL-1"> сам по себе. Но когда их несколько, то работает только первый (посмотрите пожалуйста пример в коде страницы), а их будет очень много в одной странице.

PS: я думал, что код ссылок будет выглядеть как то так:
https://www.google.com.ua/search?q=<script>function(...);</script>&adsdiag=3542360

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>

	<div class="panel panel-default" id="PANEL-1">
		<div class="panel-heading">
			<a class="panel-title collapsed" data-toggle="collapse" data-parent="#panel-1" href="#panel-element-1">1+2</a>
		</div>
		<div id="panel-element-1" class="panel-collapse collapse">
			<div class="panel-body">
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542360">ссылка 1</a>
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542361">ссылка 2</a>
			</div>
		</div>
	</div>
	<div class="panel panel-default" id="PANEL-2">
		<div class="panel-heading">
			<a class="panel-title collapsed" data-toggle="collapse" data-parent="#panel-2" href="#panel-element-2">3+4</a>
		</div>
		<div id="panel-element-2" class="panel-collapse collapse">
			<div class="panel-body">
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542360">ссылка 1</a>
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542361">ссылка 2</a>
			</div>
		</div>
	</div>

	<script>
		(function(parent, title, links, re, window, document) {
			parent = document.querySelectorAll(parent);
			[].forEach.call(parent, function(elem, indx) {
				title = elem.querySelector(title);
				links = elem.querySelectorAll(links);
				[].forEach.call(links, function(link, indx) {
					var href = decodeURI(link.href);
					link.href = href.replace(new RegExp(re), title.textContent.trim());
				});
			});
		})('.panel', '.panel-title', '.panel-body > a', 'КЛЮЧЕВОЕ\\+СЛОВО', window, document);
	</script>	

</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 02.11.2017, 15:35
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Exhaust_,
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>

	<div class="panel panel-default" id="PANEL-1">
		<div class="panel-heading">
			<a class="panel-title collapsed" data-toggle="collapse" data-parent="#panel-1" href="#panel-element-1">1+2</a>
		</div>
		<div id="panel-element-1" class="panel-collapse collapse">
			<div class="panel-body">
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542360">ссылка 1</a>
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542361">ссылка 2</a>
			</div>
		</div>
	</div>
	<div class="panel panel-default" id="PANEL-2">
 		<div class="panel-heading">
			<a class="panel-title collapsed" data-toggle="collapse" data-parent="#panel-2" href="#panel-element-2">3+4</a>
		</div>
		<div id="panel-element-2" class="panel-collapse collapse">
			<div class="panel-body">
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542360">ссылка 1</a>
				<a href="https://www.google.com.ua/search?q=КЛЮЧЕВОЕ+СЛОВО&adsdiag=3542361">ссылка 2</a>
			</div>
		</div>
 	</div>

	<script>
		(function(parent, title, links, re, window, document) {
			parent = document.querySelectorAll(parent);
			[].forEach.call(parent, function(elem, indx) {
				var t = elem.querySelector(title);
				var l = elem.querySelectorAll(links);
				[].forEach.call(l, function(link, indx) {
					var href = decodeURI(link.href);
					link.href = href.replace(new RegExp(re), t.textContent.trim());
				});
			});
		})('.panel', '.panel-title', '.panel-body > a', 'КЛЮЧЕВОЕ\\+СЛОВО', window, document);
	</script>	

</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 02.11.2017, 16:04
Аспирант
Отправить личное сообщение для Exhaust_ Посмотреть профиль Найти все сообщения от Exhaust_
 
Регистрация: 16.09.2014
Сообщений: 52

Спасибо, то что нужно
+ в карму
Ответить с цитированием
  #10 (permalink)  
Старый 02.11.2017, 16:12
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Exhaust_,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
Преобразовать строку в HTML код (обратное htmlspecialchars из php) daslex Общие вопросы Javascript 71 23.08.2015 20:41
Выдирать переменные из html effJkeee Общие вопросы Javascript 8 22.12.2012 12:36
Типографика и HTML код Manjuriano (X)HTML/CSS 3 23.11.2011 12:22
Переменные в HTML ibcmsm Общие вопросы Javascript 7 27.09.2011 14:35