Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Определить значение переменной как другую переменную (https://javascript.ru/forum/events/52959-opredelit-znachenie-peremennojj-kak-druguyu-peremennuyu.html)

cript 14.01.2015 20:56

Определить значение переменной как другую переменную
 
Приветствую!
Имеется конструкция вида
phrase = getCookie("lang['button']"),
var options = {
opt1: '123',
opt2: '321',
buttons: {
phrase:  'func1',
b: 'func2'
}
}
for(var btn in options.buttons) 
{
var _btn = d.createElement('button');
var __btn = options.buttons[btn];
addEvent(_btn, 'click', __btn);
var txt = d.createTextNode(btn);
_btn.appendChild(txt); // выведет "phrase"
..
}

При таком раскладе выводится слово "phrase" вместо нужной фразы, которую нужно определить заранее.
Подскажите как сделать так, чтобы выводилась та фраза, которую определяем в переменной?

SV0L0CH 15.01.2015 04:38

В 15 строке заменить `btn` на `__btn`.
И вообще, рекомендую давать названия поосмысленней.

cript 15.01.2015 12:06

<div id="body"></div>
<script>
phrase = 'Ок';
var options = {
opt1: '123',
opt2: '321',
buttons: {
phrase:  function(){ alert(); },
cansel: function(){ alert(1); }
}
}
for(var btn in options.buttons) 
{
var _btn = document.createElement('button');
_btn.onclick = options.buttons[btn];
var txt = document.createTextNode(btn);
_btn.appendChild(txt); // выведет "phrase" и "cansel" вместо "Ок" и "cansel"
document.getElementById('body').appendChild(_btn); 
}
</script>

SV0L0CH 15.01.2015 17:12

Или ты это имеешь ввиду?
<div id="body"></div>
<script>
phrase = 'Ок';
var options = {
opt1: '123',
opt2: '321',
buttons: {
phrase:  function(){ alert(0); },
cansel: function(){ alert(1); }
}
}
for(var btn in options.buttons) 
{
var _btn = document.createElement('button');
_btn.onclick = options.buttons[btn];
var txt = document.createTextNode(window[btn]||btn);
_btn.appendChild(txt); // выведет "phrase" и "cansel" вместо "Ок" и "cansel"
document.getElementById('body').appendChild(_btn); 
}
</script>

cript 15.01.2015 19:13

SV0L0CH,
это то что нужно, очень выручил!


Часовой пояс GMT +3, время: 14:32.