Добавление привязки к сгенерированным URL - PullRequest
0 голосов
/ 28 апреля 2009

Я пытался найти пример simialr и использовать его для решения своей проблемы, но я не могу заставить его работать, поэтому извиняюсь, если это похоже на другие проблемы.

По сути, я использую систему Site Manager CMS в Terminal Four для создания своих сайтов. Этот инструмент позволяет создавать элементы навигации для использования на вашем сайте.

Мне нужно добавить собственный бит JS, чтобы добавить к этим ссылкам привязку.

Сгенерированные ссылки похожи на это:

<ul id="tab-menu">
<li><a href="/section/page">test link, can i rewrite and add an anchor!!!</a></li>
</ul>

Я могу редактировать css-свойства ссылки, но не могу понять, как добавить якорь.

Я использую JQuery:

<script type="text/javascript" src="http://jquery.com/src/jquery-latest.pack.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
    // everything goes here

    $("#tab-menu").children("li").each(function() { 
        $(this).children("a").css({color:"red"});

        });

    });
</script>

Заранее спасибо за любую помощь.

Пэдди

Ответы [ 4 ]

3 голосов
/ 28 апреля 2009

дубликат этого: Как изменить href для гиперссылки, используя jQuery

просто скопируйте старый href, добавьте к нему якорь и вставьте его обратно

var link = $(this).children("a").attr("href");
$(this).children("a").attr("href", link+ "your own stuff");
1 голос
/ 28 апреля 2009

Хорошим методом на основе jQuery является использование метода .get (index) для доступа к необработанному элементу DOM в вашей функции each (). Это тогда дает вам доступ к объекту ссылки JavaScript, который имеет свойство с именем 'hash', представляющее часть привязки URL. Так что немного изменив свой код:

<script type="text/javascript">
    $(document).ready(function(){
    // everything goes here

        $("#tab-menu").children("li").children("a").each(function() {   
            $(this).css({color:"red"}).get(0).hash = "boom";
        });

    });

Изменит все ссылки в "#tab_menu li" на красный и присоединит "#boom" к концу.

Надеюсь, это поможет!

0 голосов
/ 15 сентября 2009

Я не уверен в ответе, я не попробую

$("#tab-menu").children("li").children("a").each(function() {   
              //  $(this).css({color:"red"}).get(0).hash = "boom";
            var temp_url = $(this).href +'#an_anchor';//or var temp_url = $(this).attr('href');
          $(this).attr('href', temp_url);
    });
0 голосов
/ 28 апреля 2009

Теперь я могу настроить таргетинг на HTML, используя следующее:

$(this).children("a").html("it works");

Я предположил, что:

$(this).children("a").href("something");

отредактирует href, но я ошибаюсь.

Пэдди

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...