Да, просто замени весь шаблон на этот:
|

11.08.2010, 23:49
|
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
|
Сообщение от lancer
|
|
Неужели выход только один?
|
Ну, если ты видишь только такой выход, то уж лучше switch используй 
|
|

11.08.2010, 23:50
|
 |
Матрос
|
|
Регистрация: 03.04.2008
Сообщений: 6,246
|
|
|
Сообщение от lancer
|
|
Переменная n получает значение в процессе работы скрипта,
|
ССЗБ
var color_arr = new Array();
lips_pomade_param = 7;
color_arr[lips_pomade_param]='<li>Раздел</li>';
n = "lips_pomade_param";
_n=eval(n);
alert(color_arr[_n]);
PS не используй это в реальных проектах.
а то Б-женька тебя накажет, а мне оторвет руки
код дан, чисто в ознакомительных целях.
при нормальном написании проекта, твой ситуация просто тне может возникнуть.
и даже если она волзникла(а этого не может ыбть, если ты правильно пишешь), то switch более лучший и правильный выход
Последний раз редактировалось Gvozd, 11.08.2010 в 23:53.
|
|

12.08.2010, 00:01
|
|
Профессор
|
|
Регистрация: 30.01.2008
Сообщений: 230
|
|
Насчет switch в курсе, просто еще его не применял, чтобы не внести в вопрос ошибок написал привычно на if'ах.
Вообще, спасибо!
|
Цитата:
|
|
при нормальном написании проекта, твой ситуация просто тне может возникнуть.
|
Зная класс элемента включаю нужный массив.
Класс использую как переменную mass[class].
Такого не может возникнуть? А что еще такого я могу знать у элемента
что не в стринге? id, data-(name) - тоже стринг.
По сути включаю нужный массив по клику на элемент. Подумал и решил реализовать как вот выше описываю.
Можно по другому?
Последний раз редактировалось lancer, 12.08.2010 в 00:03.
|
|

12.08.2010, 00:15
|
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
Реальность такова, что к одному вопросу можно найти тысячу ответов. Начиная от тупо-бредовых, вроде эвала, и заканчивая вполне адекватными, типа свитча.
А, вообще... правда это секрет.. но ладно, так уж и быть - открою. Есть такая штука как объекты.. Так вот к ним как раз через строки обращаются
var color = {lips_pomade_param:'<li>Раздел</li>'},
n = 'lips_pomade_param';
alert(color[n]);
|
|

12.08.2010, 00:36
|
 |
Матрос
|
|
Регистрация: 03.04.2008
Сообщений: 6,246
|
|
|
Сообщение от lancer
|
А что еще такого я могу знать у элемента
что не в стринге?
|
обработчики событий, к примеру
если быть более верным, то их замыкания.
помещайте туда, что хотите, и будет вам счастье
|
|

12.08.2010, 09:01
|
|
Новичок
|
|
Регистрация: 03.08.2010
Сообщений: 230
|
|
Меня снова будут по голове бить сейчас, но почему нельзя сделать так:
var color_arr = new Array();
color_arr["lips_pomade_param"]='<li>Раздел</li>';
n = "lips_pomade_param";
alert(color_arr[n]);

|
|

12.08.2010, 09:27
|
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
|
Сообщение от inGray
|
|
но почему нельзя сделать так
|
Можно, но не через массив. Почему ты так привязался к ним?! Между вами что-то есть?  Кстати, new Array() - это, конечно, наглядно, но лучше объявлять массив через [], имхо.
Используй объекты! Найди, так сказать, одно отличие от того, что написал выше
var color_arr = new Object();
color_arr["lips_pomade_param"]='<li>Раздел</li>';
n = "lips_pomade_param";
alert(color_arr[n]);
new Object(), конечно, лучше просто через {} объявить
Последний раз редактировалось Sweet, 12.08.2010 в 09:30.
|
|

12.08.2010, 09:33
|
|
Новичок
|
|
Регистрация: 03.08.2010
Сообщений: 230
|
|
|
Sweet,
Ты меня с lancer спутал )
|
|

12.08.2010, 09:46
|
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
inGray,
Ой, действительно  Но смысл-то тот же
|
|

12.08.2010, 10:03
|
|
Новичок
|
|
Регистрация: 03.08.2010
Сообщений: 230
|
|
Я и не спорю)) Просто предлагаю решение 
|
|
|
|