Нашел
тут частичное решение:
(...) case "location":
var current_location = location.href.toLowerCase();
var current_base = current_location.split('/').slice(0,5).join('/')+'/';
var current = this.find("a").filter(function() { return this.href.toLowerCase() == current_base; });
if ( current.length ) { (...)
Но не пойму, как работает =( (что такое split, slice, join)...
так.. в справочнике почитал про эти методы строки, но не понял в какой последовательности они в этом примере вызываются, по идее - слева направо и первый метод
split('/') должен разбить адрес
http://site.ru/razdel/straniza1/podstraniza1-2/
на массив ["http:", "", "site.ru", "razdel", "straniza1", "podstraniza1-2"], я правильно понял, и
что происходит дальше с этим массивом? - просто slice обрезает не символы строки, а элементы массива? (было бы хорошо, если бы в разделе
slice был тогда пример и с массивом, если я правильно понял :-) .
По факту оказалось, что slice(0,5) в этой комбинации обрезает, все, что дальше 4-го слэша (5-1).
Т.е. из
http://site.ru/razdel/straniza1/podstraniza1-2/ обрежет все справа после straniza1.
В общем, рабочий пример - с хэшем работает также - происходит обрезка после straniza1 (в конце добавляется '/').