How to replace element's attr href with each ? // strip url

29,899

Solution 1

The code you posted will get the value as a string then properly replace the values but it immediately discards the result. You need to pass in the replaced value to attr. Try the following

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

Solution 2

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

Solution 3

You can also check href value and make condition

<script type="text/javascript">
$('a').each(function() {
    var value = $(this).attr('href');
    if(value=='http://google.com')
    {
        $(this).attr('href', 'http://youtube.com');
    }
});​
</script>
Share:
29,899
Barlas Apaydin
Author by

Barlas Apaydin

for further information: www.barlasapaydin.com

Updated on August 21, 2020

Comments

  • Barlas Apaydin
    Barlas Apaydin almost 4 years

    im trying to change href with each method,

    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
    });​