簡體   English   中英

在導航菜單中突出顯示當前頁面?

[英]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的更多信息

substr()lastIndexOf()

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.

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