Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Как дописать значения атрибута в ссылках в динамическом меню? (https://javascript.ru/forum/project/40333-kak-dopisat-znacheniya-atributa-v-ssylkakh-v-dinamicheskom-menyu.html)

dimas15 01.08.2013 11:38

Как дописать значения атрибута в ссылках в динамическом меню?
 
есть скрипт который скрывает ссылки от индексации если ссылки заменить например с <a href="vasyapupkin.ru">Вася Пупкин</a> на ‹a href="javascript:goPage('vasyapupkin.ru')"›Ва я Пупкин‹ /a› :

‹script type="text/javascript"›
function goPage(sPage) {
window.location.href = sPage;
}
‹/script›

есть динамическое дублирующее меню:
<ul class="menu set-v">
<li class="item-118 deeper parent"><a href="/pesok">Песок</a>
<ul><li class="item-131"><a href="/pesok/namyvnoj-pesok">Намывной песок</a></li>
<li class="item-132"><a href="/pesok/karernyj-pesok">Карьерный песок</a></li>
<li class="item-133"><a href="/pesok/morskoj-pesok">Морской песок</a></li>
<li class="item-134"><a href="/pesok/kvartsevyj-pesok">Кварцевый песок</a></li>
<li class="item-135"><a href="/pesok/pgs">ПГС</a></li>
<li class="item-136"><a href="/pesok/supes">Супесь</a></li>
</ul>
</li>
<li class="item-120"><a href="/beton">Бетон</a></li>
</ul>

Нужно чтобы ссылки заменились для этого меню с таким то id
например С <a href="/beton">Бетон</a>
На
‹a href="javascript:goPage('beton')"›Бетон‹ /a›
И конечно нужно чтобы это было для всех ссылок в этом меню.
При этом ссылки должны сохранять свой путь.
Т.е. поедее нужно автоматом вставить как то для всех ссылок href="javascript:goPage(' сама ссылка')"
Можно ли такое реализовать?!

Tim 02.08.2013 01:42

Найди все ссылки document.querySelectorAll('.menu li a') например и в цикле заменяй href

dimas15 02.08.2013 11:51

Цитата:

Сообщение от Tim (Сообщение 265481)
Найди все ссылки document.querySelectorAll('.menu li a') например и в цикле заменяй href

Это как ?

Tim 02.08.2013 13:29

dimas15,
Открой для себя консоль или FireBug. Первая кст обычно открывается сочетанием клавишь Ctrl + Shift + J. Нажми и исследуй...



Чтобы объекты dom отображались не в виде кусков html а в виде дерева я применяю трюк с заворачиванием их в объект, иначе хром не хочет дерево свойств показывать.

Код:

> link = {}
> link.foo = document.querySelectorAll('a')[0]
> link



После
Код:

link.foo = document.querySelectorAll('a')[0]
ты можешь написать link, поставить точку и увидеть список всех свойств и методов которые есть в этой ссылке.

Отладка в браузере Chrome

mta88 02.08.2013 14:12

Цитата:

Сообщение от dimas15 (Сообщение 265513)
Это как ?

книжку попробуйте почитать :)

dimas15 02.08.2013 16:44

Цитата:

Сообщение от mta88 (Сообщение 265537)
книжку попробуйте почитать :)

Да я смотрю ты вообще умняга.....:haha:

dimas15 02.08.2013 16:49

Цитата:

Сообщение от Tim (Сообщение 265525)
dimas15,
Открой для себя консоль или FireBug. Первая кст обычно открывается сочетанием клавишь Ctrl + Shift + J. Нажми и исследуй...



Чтобы объекты dom отображались не в виде кусков html а в виде дерева я применяю трюк с заворачиванием их в объект, иначе хром не хочет дерево свойств показывать.

Код:

> link = {}
> link.foo = document.querySelectorAll('a')[0]
> link



После
Код:

link.foo = document.querySelectorAll('a')[0]
ты можешь написать link, поставить точку и увидеть список всех свойств и методов которые есть в этой ссылке.

Отладка в браузере Chrome

Тут ведь надо как-то написать условие чтобы в атребуте ссылки href="..." прописывалось условие в начале javascript:goPage(' и в конце ') . вот в чем вопрос. А про то что нужно использовать for я понял

Tim 02.08.2013 22:00

link.attributes[0].nodeValue = "javascript:goPage('" + link.attributes[0].nodeValue + "')";

ну как то так, только с link.attributes[0] аккуратнее не факто что href будет первым в массиве аттрибутов


Часовой пояс GMT +3, время: 17:37.