Показать сообщение отдельно
  #10 (permalink)  
Старый 13.02.2011, 14:28
Новичок на форуме
Отправить личное сообщение для Rossi25 Посмотреть профиль Найти все сообщения от Rossi25
 
Регистрация: 13.02.2011
Сообщений: 4

Нашел тут частичное решение:
(...) 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 (в конце добавляется '/').

Последний раз редактировалось Rossi25, 13.02.2011 в 15:31.
Ответить с цитированием