我有一個網頁了一系列關於它<a>
鏈接查詢字符串參數看起來像這樣:從HREF獲取標籤
<a href="http://www.domain.com/page/other.jsf?fruit=apple&tree=pine&rock=sedimentary">click me</a>
這些參數操縱鏈接到最終頁面(「以外的內容.jsf「)以較小的方式。
作爲A/B/n測試的一部分,我想根據用戶在包含鏈接的頁面上的行爲來更改href中的參數。因此,例如,我想在點擊之前將水果參數更改爲「橙色」。
我的問題是參數更改字符串中的位置,或者可能根本不存在某些鏈接,而.param()函數只能在url上工作。
到目前爲止(基於另一個問題的答案)我有這個,但它沒有考慮到可能沒有「end_pos」或href中缺少「fruit =」的可能性(儘管這第二位好像有如果未定義型功能更簡單的修復):然後
$('a').each(function() {
if ($(this).attr('href').indexOf('other') > -1) {
var hrefStr = $(this).attr('href');
var start_pos = hrefStr.indexOf('fruit=') + 1;
var end_pos = hrefStr.indexOf('&',start_pos); //works as long as fruit=apple is in the middle or front of the string
var fruit = hrefStr.substring(start_pos,end_pos);
...
//put modified href back in <a>
}
});
我的第二個問題是標識原始HREF的相同部分,使新的字符串回。儘管理解了解壓縮的方法,但我可能會在理解後首先解決這個問題。
我還要說,我有過我用這個功能來做到這一點比通過JavaScript
我很喜歡這個;緊湊並解決整個問題 – tymothytym