将字符串添加到URL的结尾

时间:2012-02-09 16:01:15

标签: jquery

我正在更改我的链接网址以添加www.site.com/index.html?s=234&dc=65828

我使用此代码获得的是:site.com/&dc=65828

var target="&dc=65828";
$("a").attr({ 
href: "" + target
});

有人能告诉我我哪里出错了。

6 个答案:

答案 0 :(得分:3)

我会这样做:

var target="&dc=65828";
$(function(){
    $('a').each(function(){
        $(this).attr('href', $(this).attr('href')+target);
    });
});

答案 1 :(得分:3)

这将是解决这个问题的优雅方法:

var target="&dc=65828";
$('a').attr('href', function(i, currentAttribute){
    return currentAttribute + target;
});

作为第二个参数传递的函数将在其第二个参数中接收当前href属性(我将其命名为currentAttribute以提高可读性)。无论您从此函数返回什么,都将设置为新的href属性。

此方法适用于多个链接,并且不使用不必要的.each()

答案 2 :(得分:1)

你们不相信错误检查吗?

$('a').attr('href', function(i, currentAttribute){
    // don't clutter up the global namespace
    var target="dc=65828";
    // if it's already there, don't double-do it
    if (currentAttribute.indexOf(target) >= 0){
        return currentAttribute;
    }
    // if we've got a query string already
    if (currentAttribute.indexOf('?') >= 0){
        return currentAttribute + '&' + target;
    }
    // if we've not got a query string yet
    return currentAttribute + '?' + target;
});

答案 3 :(得分:-1)

有几件事。

首先:

href: ""+target

将您的链接设为仅:

&dc=65828

你需要这样的东西:

$('a').attr('href', $(this).attr('href')+target);

但是假设?s=234已经在链接的末尾。如果没有,你也需要添加它。

答案 4 :(得分:-1)

检查一下,这将给出完全匹配的结果

 $('a').append(function(){
                $(this).attr('href', $(this).attr('href')+target);
            });



    $('a').html(function(){
                $(this).attr('href', $(this).attr('href')+target);
            });

答案 5 :(得分:-2)

试试这个:

var target="&dc=65828",
    $link = $("a");

$link.attr('href', $link.attr('href') + target);