的我改變了我的鏈接網址以添加www.site.com/index.html?s=234 & DC = 65828添加字符串結束URL
我正在使用此代碼得到的是:網站.com/& dc = 65828
var target="&dc=65828";
$("a").attr({
href: "" + target
});
有人可以告訴我我哪裏出錯了。
的我改變了我的鏈接網址以添加www.site.com/index.html?s=234 & DC = 65828添加字符串結束URL
我正在使用此代碼得到的是:網站.com/& dc = 65828
var target="&dc=65828";
$("a").attr({
href: "" + target
});
有人可以告訴我我哪裏出錯了。
有幾件事情。
第一:
href: ""+target
將設置你的鏈接只有:
&dc=65828
你需要這樣的:
$('a').attr('href', $(this).attr('href')+target);
但是,這是假設?s=234
已經在鏈接的末尾。如果沒有,你也需要添加。
你可以發佈一個jsFiddle來顯示這個工作嗎? – kapa 2012-02-10 11:13:12
檢查了這一點,這是會給出確切的匹配結果
$('a').append(function(){
$(this).attr('href', $(this).attr('href')+target);
});
$('a').html(function(){
$(this).attr('href', $(this).attr('href')+target);
});
這將是解決這個優雅的方式:
var target="&dc=65828";
$('a').attr('href', function(i, currentAttribute){
return currentAttribute + target;
});
傳遞作爲第二個參數的功能在其第二個參數(我將其命名爲currentAttribute
以獲得更好的可讀性)中接收當前的href
屬性。無論你從這個函數返回什麼,都將被設置爲新的href
屬性。
此方法適用於多個鏈接,並且不使用不必要的.each()
。
你們不相信錯誤檢查?
$('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;
});
好吧,當有人刮掉問題代碼片段時,他們會很感激我想。 ;-) – madphp 2013-06-21 18:28:08
當你調用這段代碼時'href'的值是多少?你能添加一個HTML例子嗎? – scottm 2012-02-09 16:03:20
你想獲得每個變量的值嗎? – MG1 2012-02-09 16:03:40