2016-03-18 4 views
0

В моем сценарии пользователь должен указать направления, и мне нужно выполнить мой код в соответствии с этим направлением. Моя единственная идея:Вставить строку в выражение

function (dir) { 
    var element = document.querySelector('#id'); 
    eval('element.style. ' + dir + ' = 10\'px'\;' 
} 

Интересно, есть ли лучший способ для этого. Потому что, как я знаю, eval - не очень хорошая практика.

+0

Оставляя в стороне 'Eval 'быть неправильным инструментом (принятый ответ имеет правильное решение), стоит отметить, что' element.style.left = 10'px '; 'все равно не будет действительным кодом. –

ответ

2

без проверки ошибок, чтобы убедиться, что element.style[dir] существует, то вы можете сделать это:

function foo(dir) { 
    var element = document.querySelector('#id'); 
    element.style[dir] = '10px'; 
} 

Я предполагаю, что вы хотите использовать его как это:

foo('top'); // ==> element.style.top = '10px'; 
+0

Прекрасно работает с кронштейнами, спасибо большое! – th1rt3nth

Смежные вопросы