我正在更改我的链接网址以添加www.site.com/index.html?s=234&dc=65828
我使用此代码获得的是:site.com/&dc=65828
var target="&dc=65828";
$("a").attr({
href: "" + target
});
有人能告诉我我哪里出错了。
答案 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);