2015-11-11 61 views
0

我在頁面上有鏈接,我想添加一個ID錨。這段代碼我有工作正常:但方式插入文本字符串到href鏈接(特定位置)

window.onload = function() { 
    $('#main > div > ul > li > a').attr('href',function(i,str) { 
     return str + '#myAnchor'; 
    }); 
}; 

有時會因爲頁面設置跟蹤被添加到鏈接,這樣的結果是什麼時刻發生的事情是,我得到http://www.myurl.com/#someannoyingtracking#myAnchor這不錨。我怎樣才能插入錨在URL或總是之間後「的.com /」像這樣:http://www.myurl.com/#myAnchor #someannoyingtracking

+0

爲什麼不試試'回報 '#myAnchor';'? – Rayon

+0

'anchor = $('#main> div> ul> li> a')[0] .pathname; anchor.hash ='#myHash'+ anchor.hash'(或者在一個包含多個鏈接的循環中) – dug

回答

1

您可以使用replace爲:

window.onload = function() { 
    $('#main > div > ul > li > a').attr('href',function(i, str) { 
     if (str.indexOf('#') > -1) { 
      return str.replace('#', '#myAnchor'); 
     } else { 
      return str + '#myAnchor'; 
     } 
    }); 
}; 
+0

這工作通過保持跟蹤以及包括我的#anchor ...謝謝CLyff – BoneStarr

3

這惱人的跟蹤錨在年底前插入錨網址:

$('#main > div > ul > li > a').attr('href', function(i,str) { 
 
    return str.replace(/(\#.+)|($)/, '#myAnchor$1'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="main"> 
 
    <div> 
 
    <ul> 
 
     <li><a href="http://example.com/#someannoyingtracking">Has anchor</a> 
 
     <li><a href="http://example.com/">No anchor</a> 
 
    </ul> 
 
    </div>  
 
</div>

+0

Rick,我沒有給你正確的答案,因爲你的移除了所有的跟蹤,儘管我給了你+1,因爲我將在不同的頁面上使用它,它可以將所有東西一起移除。謝謝你的幫助。 – BoneStarr

+0

瞭解,但請注意,這不會刪除跟蹤,它會在它之前插入錨點。所以這可能不適用於您的其他網頁。 –

+0

我認爲@Dug對你的問題有最好的答案。 –

3

捎帶上裏克·希區柯克的答案,但無正則表達式-:

$('#main > div > ul > li > a').each(function(index, elem) { 
 
    elem.hash = '#myAnchor' + elem.hash; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="main"> 
 
    <div> 
 
    <ul> 
 
     <li><a href="http://example.com/#someannoyingtracking">Has anchor</a> 
 
     <li><a href="http://example.com/">No anchor</a> 
 
    </ul> 
 
    </div>  
 
</div>

+0

比我的回答更好! –