如何在jQuery中将变量附加到URL?

7
我该如何在jQuery中将变量/文本附加到属性href上?
4个回答

12
你可以使用 .attr() 函数:
var foo = 'foo=bar';
$('a#foo').attr('href', function(index, attr) {
    return attr + '?' + foo;
});

或:

$('a#foo').attr('href', function() {
    return this.href + '?' + foo;
});

1
这并没有考虑现有的URL是什么。 - JohnC
3
这将破坏已经带有查询字符串的URL。请查看@JohnC的答案。 - Tom Bowers

10
你需要在将项目附加到URL之前检查是否已经有查询字符串,基于其他示例,你可以这样做。
var foo = 'foo=bar';
$('a').attr('href', function(index, attr) {
    return attr + (attr.indexOf('?') >=0 ? '&' : '?') + foo;
});

2
$('a').attr('href', function(i, v) {
    return v + 'text...';
});

@Steffi jQuery对象中元素的索引 - 在这种情况下不相关。 - Šime Vidas

1

如果您需要重复使用它,请尝试使用.attr(),如下:

HTML: <a id='foo' href='#'>I am your father,.. nooooo</a>

var myparams = 'myvar=myvalue';
var myurl = 'TypeThe_NetscapeURL';
$('a#foo').attr('href', function() {
    return myurl + '?' + myparams;
});

几个注释:1.那样做是可以的,但实际上它覆盖了值而不是添加。要添加,请先获取值 $ (“#foo”)。attr('href'),然后再追加任何您需要的内容。2.在上面的示例中,您不需要返回URL的函数。简单的myurl+'?'+myparams就可以了。这是一个将URL附加到其上的案例。将其设置为href只是副产品。请查看https://dev59.com/bnVC5IYBdhLWcg3wz0h9以设置href。 - Alexey Gerasimov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接