jQuery переписывает href

У меня есть функция onclick, что я хочу добавить привязку к значению href. Я не хочу изменять URL, потому что мне нужен сайт для тихого функционирования для людей без JavaScript / в целях SEO. таким образом, вот то, что я попытался использовать (среди других вещей):

jQuery('a[rel=ajax]').click(function () {
    jQuery(this).attr('href', '/#' + jQuery('a'));
});

Ссылка orginal похожа на это:

http://www.mysite.com/PopularTags/

URL переписывает, должен быть похожим на это, так, чтобы Ajax работал:

http://www.mysite.com/#PopularTags

Я смог заставить некоторый URL работать путем устанавливания, ссылки называют значение к тому же как href, но это не работало на ссылки с подразделами:

http://www.mysite.com/Artist/BandName/

Так не действительно уверенный. Спасибо за справку.

6
задан brandon14_99 15 April 2010 в 06:25
поделиться

3 ответа

Я бы посоветовал использовать регулярные выражения, например

$('a[rel=ajax]').click(function(){
  $(this).attr('href', function(){
    this.href = this.href.replace(/\/$/, "");
    return(this.href.replace(/(.*\/)/, "$1#"));
  });
});
5
ответ дан 10 December 2019 в 02:44
поделиться

Думаю, что-то вроде

jQuery(function(){
  jQuery('a').each(function(){
    jQuery(this).attr('href','/#'+jQuery(this).attr('href'));
  });
});

сработает. Читается как: при загрузке страницы прокрутите все ваши ссылки и замените их атрибуты href на # {old href}.

0
ответ дан 10 December 2019 в 02:44
поделиться

Это зависит от того, как вы закодируете свои ссылки в HTML. Если вы ссылаетесь на http://www.mysite.com/PopularTags/ , используя это:

<a href="/PopularTags/">Popular Tags</a>

Вы можете просто использовать это:

$(function() {
 $('a[rel=ajax]').each(function() {
  var actualHref = $(this).attr('href');
  this.href = '/#' + actualHref.substring(1, actualHref.length - 1); // cuts off the first and last characters (‘/’)
 });
});

Это приведет к следующему HTML:

<a href="/#PopularTags">Popular Tags</a>

Обратите внимание, что мы можем установить this.href вместо $ (this) .attr ('href') , но нам все равно понадобится последний, чтобы получить фактический href ] атрибут. this.href всегда содержит полный URI, включая протокол, имя домена и т. Д., Что нам не нужно в этом примере.

4
ответ дан 10 December 2019 в 02:44
поделиться
Другие вопросы по тегам:

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