2012-03-15 1 views
0

Мне нужна помощь, чтобы выяснить последний бит этого. Я пытаюсь изменить набор анкерных элементов в форме <a href='#some link'> на форму: <a href='some_link.html'>. Я уверен, что это что-то маленькое, о котором я не замечаю ... ниже приводится ссылка в качестве примера. Благодаря!Как заменить хеш-якорь (октоторп) из ссылки href

http://jsfiddle.net/TGxANAHEiiMx/Dh8JM/24/

ответ

1

Вы перебор всех <a> элементов, а также те, без атрибута href (то есть те, которые имеют атрибут name вместо). Вместо этого используйте a[href], который выбирает только <a> элементов, которые на самом деле имеют атрибут href для замены: http://jsfiddle.net/Dh8JM/25/.

$('a[href]').attr(...); 
+0

См., Просто! Бесконечно благодарен!!! – Drewness

+0

@TGxANAHEiiMx: Пожалуйста, отметьте галочкой рядом с ответом, который вам помог, спасибо :) – pimvdb

0

ли эта помощь

$("a[href='#top_page']").attr("href","some_link.html"); 
+0

Нет, я исключаю любые ссылки href на #top_page. Спасибо за ваш вход! – Drewness

1

Я хотел бы предложить:

$('a').each(
    function(){ 
     var h = this.href.substring(this.href.indexOf('#')+1); 
     if (h == 'top_page'){ 
      return false; 
     } 
     else { 
      this.href = h.replace(/ /g, '_') + '.html'; 
     } 
    });​ 

JS Fiddle demo.

выше повернет a элементов из:

<a href='#Tax Services'>Tax Services</a> 

В:

<a href="#Tax_Services.html">Tax Services</a> 
0

Вы получаете сообщение об ошибке, где некоторые из ваших <a> тегов не имеет HREF атрибута определен. Here - рабочая скрипка.

$('a').attr('href', function(i, val) { 
    // skip the undefined ones with val !== undefined 
    if (val !== '#top_page' && val !== undefined) { 
     return val.replace(/\#/, '').replace(/\s/g, '_') + '.html'; 
    } 
}); 
+0

, но разве вы не считаете его простым просто заменить href с помощью attr(), чем использовать регулярное выражение? Я знаю, что вы исправляете код OP, но хотели бы знать ваши мысли. – DG3

+0

@ DG3, если вы посмотрите на код OPs, вы увидите, что OP пытается изменить каждый элемент href в зависимости от уже установленного значения href. – sinemetu1

Смежные вопросы