[英]Highlighting current page in a nav menu?
我上網查看了各種使用Jquery突出顯示當前菜單導航的方法,並且遇到了下面的一些代碼。 該代碼可以正常工作,但是我不太理解第二行,我想知道是否有人可以解釋一下。
var url = window.location.href;
url = url.substr(url.lastIndexOf("/") + 1);
$("#mainMenu").find("a[href='" + url + "']").addClass("current");
提前致謝!
url = url.substr(url.lastIndexOf("/") + 1);
只需獲取網址的最后一段。 例如,如果網址是
foo.com/module/submodule
它會返回submodule
為此,它找到/
的最后一個索引,然后將1 +傳遞給substr
。
從您的評論中The part that got me confused was the '+1' at the end
,請注意,substr接受子字符串開始的索引。 您不想以/
開頭子字符串,因此添加了1,以便子字符串將從最后一個/
后面的字符開始。
為了完整起見,由於沒有第二個參數傳遞給substr,因此返回了整個url。 如果傳遞了第二個參數,則僅返回該數量的字符。
substr()
方法以指定的字符數返回從指定位置開始的字符串中的字符。
lastIndexOf()
方法返回最后一次出現的指定值的調用String對象內的索引;如果未找到,則返回-1。 向后搜索調用字符串,默認情況下從0開始。
var url返回一個字符串值,而字符串是一個字符數組。 由於它是一個數組,所以每個字符都有一個位置。
url = url.substr(url.lastIndexOf("/") + 1);
我們正在做的是讀取url
值,並從url
的最后一個/
直到值的結尾開始獲取它的子字符串。
要了解更多信息,請在這里閱讀: http : //www.w3schools.com/jsref/jsref_substr.asp
這里還有一些小提琴: http : //jsfiddle.net/gd5Xr/
解決方案的第二行從last /
修剪當前的完整URL。
substr()
=這會修剪給定的字符串,在這種情況下-完整的url。
lastIndexOf()
=此方法帶來給定參數的索引整數。 在這種情況下,從給定的url開始,索引號為last /
。
對於substr
+1只是為了避免最后一個/
來自新的調整值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.