2012-07-06 11 views
7

im próbuje zmienić href z każdej metody,Jak wymienić element attr href elementu? // pasek URL

here is demo, inspect a, you'll see there is no change

html:

<a href="#/news">News</a> 
<a href="#/news/detail">Detail</a> 
<a href="#/sport">Sport</a> 
<a href="#/sport/football">Football</a>​​​​​​​​​​​​ 

jQuery:

$('a').each(function() { 
    $(this).attr('href').replace('#/',''); //tried to erase #/ from all hrefs 
});​ 
+0

Nie można zastąpić łańcuch do atr tak; po prostu pobierz href jako zmienną z attr jako getter, wykonaj zamianę, a następnie wypompuj ją ponownie z attr jako seter. (lubię jak eleklanty, przypuszczam, że możesz po prostu zrobić settera w jednym!). –

Odpowiedz

14

Kod pan pisał wola uzyskać wartość jako string następnie prawidłowo replace wartości, ale natychmiast odrzuca wynik. Musisz przekazać zastąpioną wartość do attr. Spróbuj wykonać następujące czynności

$('a').each(function() { 
    var value = $(this).attr('href'); 
    $(this).attr('href', value.replace('#/','')); 
});​ 
+0

co ciekawe to nie działa w moim plugin /: chory spróbuj ponownie –

+0

zrozumiałem, coś innego było blokowanie, dzięki kolego! –

6
var href = $(this).attr('href'); 
$(this).attr('href', href.replace('#/','')); 
+0

dziękuję kolego .. :) –

1

Można także sprawdzić wartość href i uczynić stan

<script type="text/javascript"> 
$('a').each(function() { 
    var value = $(this).attr('href'); 
    if(value=='http://google.com') 
    { 
     $(this).attr('href', 'http://youtube.com'); 
    } 
});​ 
</script> 
Powiązane problemy