【问题标题】:How to update (append to) an href in jquery?如何在 jquery 中更新(附加到)href?
【发布时间】:2010-05-10 19:20:23
【问题描述】:

我有一个链接列表,所有链接都指向 google maps api。

链接中已经有daddr(目标)参数作为静态。我正在使用 Geo-Location 来查找用户位置,并且我想在获得数据后将 saddr(源地址)添加到链接中。

所以基本上我需要在指向谷歌地图的所有链接的末尾添加类似&saddr=50.1234567,-50.03452 的内容

所有链接都有一个名为directions-link的类

this page 我已经想出了如何更改它们:

$("a.directions-link").attr("href", "http://www.google.com/");

但是我只想将我的值附加到 href 的末尾而不更改 href 已经是什么。

我该怎么做?

【问题讨论】:

    标签: jquery


    【解决方案1】:
    var _href = $("a.directions-link").attr("href");
    $("a.directions-link").attr("href", _href + '&saddr=50.1234567,-50.03452');
    

    each()循环

    $("a.directions-link").each(function() {
       var $this = $(this);       
       var _href = $this.attr("href"); 
       $this.attr("href", _href + '&saddr=50.1234567,-50.03452');
    });
    

    【讨论】:

    • 谢谢,如果有超过 1 个方向 - 链接都具有不同的 href,这会起作用吗?谢谢!
    • 如果您为a.directions-link 的每个实例附加相同的内容,那么可以。否则,如果您为每个 href 附加不同的值,则需要使用 each() 来迭代并附加相应的值。
    • 我附加了相同的值,但每个 href 开始时都不同。所以如果第一个是 one.html 而第二个是 two.html 他们最终都是 one.html&saddr... 因为它只捕获第一个 a.directions-link 的 href 并将其用于所有。所以我想我需要使用each()。你愿意详细说明它的使用吗?谢谢!!
    • 是的,循环正是我所需要的,谢谢! :)
    【解决方案2】:

    jQuery 1.4 有一个新特性可以做到这一点,并且它规则。我忘记叫什么了,不过你这样用:

    $("a.directions-link").attr("href", function(i, href) {
      return href + '?q=testing';
    });
    

    它也循环遍历所有元素,所以不需要 $.each

    【讨论】:

    • 这对我不起作用,但 .attr('href', function(i) { return $(this).attr('href') + '?q=testing'; }) 起作用了。
    • @elfbertf 它对我有用。你使用 jquery >= 1.4 吗?您是否将 href 变量作为第二个参数包含在内?
    • $("#calculator").attr("href", function (i, href) { return href + '?ves=' + 23 + '&v='+ 'sdfds'; } );不工作
    • jsfiddle.net/qz9eLr2z 测试这个,它有效。 api.jquery.com/attr/#attr-attributeName-function 表示这是在 jQuery 1.1 中添加的。
    • @JacobC。在 1.1 中添加了允许 attr 获取函数,但在 1.4 中添加了将当前值作为第二个参数传递。这是一个在 jquery 1.3 jsfiddle.net/qz9eLr2z/1 中不起作用的示例
    【解决方案3】:
    $("a.directions-link").attr("href", $("a.directions-link").attr("href")+"...your additions...");
    

    【讨论】:

    • 这是错误的。它将第一个匹配的“.directions-link”中的 href 应用于该类的所有链接。 jsfiddle.net/yuezewaw
    【解决方案4】:

    这是我尝试在 url 中添加包含 url 中特定字符的参数的方法。

    jQuery('a[href*="google.com"]').attr('href', function(i,href) {
            //jquery date addition
            var requiredDate = new Date();
            var numberOfDaysToAdd = 60;
            requiredDate.setDate(requiredDate.getDate() + numberOfDaysToAdd); 
            //var convertedDate  = requiredDate.format('d-M-Y');
            //var newDate = datepicker.formatDate('yy/mm/dd', requiredDate );
            //console.log(requiredDate);
    
            var month   = requiredDate.getMonth()+1;
            var day     = requiredDate.getDate();
    
            var output = requiredDate.getFullYear() + '/' + ((''+month).length<2 ? '0' : '') + month + '/' + ((''+day).length<2 ? '0' : '') + day;
            //
    

    工作示例Click

    【讨论】:

    • 这篇文章的目的是什么?这是一个问题还是一个答案?或者只是一个奇怪的评论?如果是后者,你发错地方了。 ;-)
    • 我已经在 jsfiddle 中创建了演示示例,但是链接错误。现在它指向正确的 url。
    • 你的“答案”毫无意义,它实际上更像是一个奇怪的陈述。
    猜你喜欢
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多