簡體   English   中英

jQuery:檢查參數 URL 並將其傳遞給錨點 href(如果存在)的最簡單方法

[英]jQuery: simplest way to check URL for a parameter and pass it to anchor href if it exists

https://example.com/index.php包含以下兩個錨標簽:

<a href="page1.php" class="hyperlink">Link 1</a>
<a href="page2.php?b=1" class="hyperlink">Link 2</a>

可以在 URL 中傳遞一個或多個參數,例如。 https://example.com/index.php?a=1&b=2

使用 jQuery/Javascript,測試 URL 中是否存在參數a並將其附加到上述鏈接中的 hrefs(如果存在)的最簡單方法是什么,因此它們變為:

<a href="page1.php?a=1" class="hyperlink">Link 1</a>
<a href="page2.php?b=1&a=1" class="hyperlink">Link 2</a>

你搞錯了應用程序設計的邏輯。 這是您應該在 Web 應用程序后端執行的操作; 您檢查 GET 請求中的輸入參數並相應地格式化鏈接超引用。此外,如果您要多次傳遞該值,則將其存儲在用戶會話臨時環境中可能更容易(使用 cookie) .

如果您使用的是 PHP(正如我可能通過文件擴展名猜到的那樣),您可以非常輕松地做到這一點:

<a href="page1.php<? 
    if(array_key_exists('your_key', $_GET) { 
        echo('?your_key=' . $_GET['your_key']) 
    } 
?>" class="hyperlink">Link 1</a>
<a href="page2.php?<? 
    if(array_key_exists('your_key', $_GET) { 
        echo('your_key=' . $_GET['your_key'] . '&') 
    } 
?>b=1" class="hyperlink">Link 2</a>

您可以嘗試使用正則表達式,順便說一下,我可以看到您正在使用 php,因此請使用 $_REQUEST 過濾它們

否則在正則表達式中的鏈接之后獲取所有內容

var url = window.location.href
var res = url.match("/\?(.*)/i")

res 應該包含來自 ?getTO&otherget 的所有內容

客戶端最簡單的是使用URL API

 var mainUrl = new URL(location.href); // Won't work in this demo so hard code href mainUrl = new URL('http://example.com?a=foo&b=2'); var paramA = mainUrl.searchParams.get('a'); $('a.hyperlink').prop('href', function(){ var url = new URL(this.href); url.searchParams.set('a', paramA); return url; }) // set query params as text just for demo .text(function(){ return 'Query Params: ' + this.search; })
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="page1.php?a=1" class="hyperlink">Link 1</a><br/> <a href="page2.php?b=1&a=1" class="hyperlink">Link 2</a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM