How to change the href for a hyperlink using jQuery

前端 未结 12 2146
孤街浪徒
孤街浪徒 2020-11-21 11:15

How can you change the href for a hyperlink using jQuery?

相关标签:
12条回答
  • 2020-11-21 11:55

    This snippet invokes when a link of class 'menu_link' is clicked, and shows the text and url of the link. The return false prevents the link from being followed.

    <a rel='1' class="menu_link" href="option1.html">Option 1</a>
    <a rel='2' class="menu_link" href="option2.html">Option 2</a>
    
    $('.menu_link').live('click', function() {
       var thelink = $(this);
       alert ( thelink.html() );
       alert ( thelink.attr('href') );
       alert ( thelink.attr('rel') );
    
       return false;
    });
    
    0 讨论(0)
  • 2020-11-21 11:57

    Use the attr method on your lookup. You can switch out any attribute with a new value.

    $("a.mylink").attr("href", "http://cupcream.com");
    
    0 讨论(0)
  • 2020-11-21 11:59

    Using

    $("a").attr("href", "http://www.google.com/")
    

    will modify the href of all hyperlinks to point to Google. You probably want a somewhat more refined selector though. For instance, if you have a mix of link source (hyperlink) and link target (a.k.a. "anchor") anchor tags:

    <a name="MyLinks"></a>
    <a href="http://www.codeproject.com/">The CodeProject</a>
    

    ...Then you probably don't want to accidentally add href attributes to them. For safety then, we can specify that our selector will only match <a> tags with an existing href attribute:

    $("a[href]") //...
    

    Of course, you'll probably have something more interesting in mind. If you want to match an anchor with a specific existing href, you might use something like this:

    $("a[href='http://www.google.com/']").attr('href', 'http://www.live.com/')
    

    This will find links where the href exactly matches the string http://www.google.com/. A more involved task might be matching, then updating only part of the href:

    $("a[href^='http://stackoverflow.com']")
       .each(function()
       { 
          this.href = this.href.replace(/^http:\/\/beta\.stackoverflow\.com/, 
             "http://stackoverflow.com");
       });
    

    The first part selects only links where the href starts with http://stackoverflow.com. Then, a function is defined that uses a simple regular expression to replace this part of the URL with a new one. Note the flexibility this gives you - any sort of modification to the link could be done here.

    0 讨论(0)
  • 2020-11-21 12:00

    href in an attribute, so you can change it using pure JavaScript, but if you already have jQuery injected in your page, don't worry, I will show it both ways:

    Imagine you have this href below:

    <a id="ali" alt="Ali" href="http://dezfoolian.com.au">Alireza Dezfoolian</a>
    

    And you like to change it the link...

    Using pure JavaScript without any library you can do:

    document.getElementById("ali").setAttribute("href", "https://stackoverflow.com");
    

    But also in jQuery you can do:

    $("#ali").attr("href", "https://stackoverflow.com");
    

    or

    $("#ali").prop("href", "https://stackoverflow.com");
    

    In this case, if you already have jQuery injected, probably jQuery one look shorter and more cross-browser...but other than that I go with the JS one...

    0 讨论(0)
  • 2020-11-21 12:04

    Change the HREF of the Wordpress Avada Theme Logo Image

    If you install the ShortCode Exec PHP plugin the you can create this Shortcode which I called myjavascript

    ?><script type="text/javascript">
    jQuery(document).ready(function() {
    jQuery("div.fusion-logo a").attr("href","tel:303-985-9850");
    });
    </script>
    

    You can now go to Appearance/Widgets and pick one of the footer widget areas and use a text widget to add the following shortcode

    [myjavascript]
    

    The selector may change depending upon what image your using and if it's retina ready but you can always figure it out by using developers tools.

    0 讨论(0)
  • 2020-11-21 12:06
     $("a[href^='http://stackoverflow.com']")
       .each(function()
       { 
          this.href = this.href.replace(/^http:\/\/beta\.stackoverflow\.com/, 
             "http://stackoverflow.com");
       });
    
    0 讨论(0)
提交回复
热议问题