Помогите упростить скрипт.
Сам я не пишу на яве, поэтому решил сразу обратится к опытным людям.
Задача такая - есть меню навигации, нужно что бы активные разделы (на котором находится пользователь) отображались другим стилем. Под руку попался такой скрипт, но он слишком громоздкий, помогите его упростить.
<script>
var a=location.href,b=0;
if(a.indexOf('/ins/s-chem-veniki.html')!=-1){
b=1;
document.write('<span class="nav-menu-content-a"><a href="#">- веники</a></span><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-kosmetika.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- косметика</a></span><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-prirodnaya-kosmetika.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- природная косметика</a></span><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-mocalki.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- мочалки</a></span><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-aromati-v-parnoj.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- ароматы в парной</a></span><br />');
document.write('<a href="#">- ингредиенты</a>');
}
if(a.indexOf('/ins/s-chem-ingridienti.html')!=-1){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a></span><br />');
document.write('<span class="nav-menu-content-a"><a href="#">- ингредиенты</a></span>');
}
if(b==0){
b=1;
document.write('<a href="#">- веники</a><br />');
document.write('<a href="#">- косметика</a><br />');
document.write('<a href="#">- природная косметика</a><br />');
document.write('<a href="#">- мочалки</a><br />');
document.write('<a href="#">- ароматы в парной</a><br />');
document.write('<a href="#">- ингредиенты</a>');
}
</script>
Заранее благодарю за помощь. |
это ж ппц как люди умудряются усложнять себе жинь просто. Нет слов
var a,i,url = ['veniki','kosmetika','prirodnaya-kosmetika','prirodnaya-kosmetika','mocalki','aromati-v-parnoj','ingridienti'],
m = ['веники','косметика','природная косметика','мочалки','ароматы в парной','ингредиенты'];
for (i=0;i<m.length;i++) document.write(((a=location.href.indexOf('/ins/s-chem-'+url[i]+'.html'))!=-1 ? '<span class="nav-menu-content-a">':'')+'<a href="#">- '+m[i]+'</a>'+(a!=-1 ? '</span>':'')+'<br>');
|
можно как то так
Вообще такие вещи наверное не стоит делать на javascript, хотя я не знаю деталей вашего случая.
Я бы написал так:
var menuItems = {
'/ins/s-chem-veniki.html' : 'веники',
'/ins/s-chem-kosmetika.html' : 'косметика',
'/ins/s-chem-prirodnaya-kosmetika.html' : 'природная косметика',
'/ins/s-chem-mocalki.html' : 'мочалки',
'/ins/s-chem-aromati-v-parnoj.html' : 'ароматы в парной',
'/ins/s-chem-ingridienti.html' : 'ингредиенты'
};
var urlpath = document.location.pathname.toString();
var html = [];
for (var path in menuItems) {
var itemHtml = '<a href="'+ path +'">- '+ menuItems[path] +'</a>';
if (urlpath.indexOf(path) === 0) {
itemHtml = '<span class="nav-menu-content-a">'+ itemHtml +'</span>';
}
html.push(itemHtml);
}
html = html.join('<br/>');
document.write(html);
P.S. не называйте яваскрипт явой (даже для краткости) :nono: :) |
Цитата:
П.С. за оптимизацией не гнался, только минимизировал логику |
Цитата:
|
Цитата:
|
Огромное спасибо Вам за помощь, очень признателен! Простите, учту, яваскрипт так яваскрипт.
Сегодня постараюсь разобраться. |
| Часовой пояс GMT +3, время: 21:53. |