2015-05-03 121 views
3

我正在嘗試查看當前網頁網址的鏈接是否存在於菜單中。檢查當前網址是否與字符串匹配

var thisUrl = window.location.href; 

$("ul.leftmenu li a").each(function() { 

    var thisHref = $(this).attr('href'); 

    if (thisUrl === thisHref) { 

    // matches 

    } 

}); 

只要當前窗口位置URL不包含任何_GET變量,它就會工作。我如何修改這個以忽略當前地址中的_GET變量?

+0

而不是'thisUrl'使用'thisUrl'的子字符串直到第一個'?' –

+0

檢查匹配函數(https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/字符串/匹配) –

+0

爲什麼不使用正則表達式 –

回答

6

您可以從href中刪除查詢字符串部分。例如是這樣的:

var thisUrl = window.location.href.replace(location.search, ''); 

location.search屬性表示GET參數串,即?param=value&param2=etc

+0

謝謝。奇蹟般有效。我會盡快接受答案。 – JROB

+0

我也注意到,如果URL末尾有一個'#',它會中斷。有什麼方法可以過濾掉嗎? – JROB

+0

那麼你也可以刪除哈希部分:'window.location.href.replace(location.search,'').replace(location.hash,'')'。但是,如果您還想刪除其他任何內容,那麼將會顯示您可能想要使用正則表達式。 – dfsq

相關問題