2013-05-06 60 views
3

我在做什麼錯?將查詢字符串追加到帶有Jquery的URL

  1. 只有在與 「/MyWebsite/Example.aspx」 添加URL地址的網頁 「?模板= PW」
  2. 但只包含 「/HelloWorld/default.aspx」 鏈接

沒有與此鏈接關聯的ID或類,所以我必須查找URL。

這是我的代碼,但鏈接不更新..我知道我很接近!

$(document).ready(function(){ 
    if (document.location.href.indexOf('/MyWebsite/Example.aspx') > 0) 
     { 
      $('a[href*="/HelloWorld/default.aspx"]').append("href",$("?template=PW")) 
     } 
}); 

回答

3
$(document).ready(function(){ 
    if (document.location.href.indexOf('/MyWebsite/Example.aspx') > 0) 
     { 
      var $el = $('a[href*="/HelloWorld/default.aspx"]'); 
      $el.attr("href", $el.attr("href")+ "?template=PW"); 
     } 
}); 
+0

我想完成同樣的事情,但所有的href我怎麼能做到這一點?請在twitter上提及我@ Shaz3e的回覆。 – shaz3e 2014-11-03 19:43:52

+0

@ shaz3e,使用$。每個方法循環所有錨, '$( 「A」)。每個(函數(){$ (本).attr(的 「href」,$(本).attr(「HREF 「)+」?template = PW「); });' – ocanal 2017-03-19 13:13:03

+0

我已經通過使用下面的代碼實現了這一點。 <腳本類型= 「文本/ JavaScript的」> \t變種查詢字符串= '的MyString'; //替換此 \t $( 'a')的各(函數(){ \t \t變種HREF = $(本).attr( 'href' 屬性); \t \t HREF = +(href.match(/ \ (')''&':'#')+ querystring; \t \t $(this).attr('href',href); \t}); – shaz3e 2017-03-30 13:25:13

2

使用$ .attr()來編輯屬性。

$ .append()用於在元素中插入html子節點。

$(document).ready(function(){ 
    if (document.location.href.indexOf('/MyWebsite/Example.aspx') > 0) 
     { 
      var href = '/HelloWorld/default.aspx'; 
      $('a[href*="' + href + '"]').attr("href", href + "?template=PW") 
     } 
}); 
1

更換

$('a[href*="/HelloWorld/default.aspx"]').append("href",$("?template=PW")) 

隨着

$.each(
    $('a[href*="/HelloWorld/default.aspx"]'), 
    function(index, value) { 
     $(value).attr('href', $(value).attr('href') + '?template=PW'); 
    } 
); 

這將讓你開始,但你也應該檢查,以確保沒有一個查詢字符串參數已經在匹配的URL 。

$()。追加()不改變href屬性的值,它被用來在每一個匹配元件的端部以插入內容。 jQuery documentation有如何使用$()。append()的例子。

1

您是否考慮使用PURL?隨着PURL我能夠做到這一點:

var url = "http://localhost/some/url?item1=one&item2=two"; 
if ($.url(url).attr('query')) { 
    url = url + '&newItem=new'; 
} 
else { 
    url = url + '?newItem=new'; 
} 
0

這一定會解決您的問題,因爲它做我的。

<script type="text/javascript"> 
    var querystring = 'MyString'; // Replace this 
    $('a').each(function(){ 
     var href = $(this).attr('href'); 
     href += (href.match(/\?/) ? '&' : '#') + querystring; 
     $(this).attr('href', href); 
    }); 
</script> 
相關問題