Получить идентификатор элемента и установить его как переменную

У меня есть кнопка:

<button class="btn btn-info continue"> <i class="ace-icon fa fa-check bigger-110"></i> Continue </button> 

По щелчку:

 $(".continue").click(function(e) { currForm = $(this).parents('form'); e.preventDefault(); }); 

Я могу легко получить id: currForm.attr('id'); , но могу ли я установить значение этого id как переменной.

Что-то вроде переменных переменных php:

 $a = 'hello'; $$a = 'world'; echo $hello; 

Изменить : я не хочу менять идентификатор элемента. Я хочу получить этот идентификатор и использовать его как имя для переменной javascript. Например, элемент I, указанный выше, имеет form которая имеет ID = 'example_id'. currForm.attr('id') даст мне example_id и я хочу установить переменную example_id и присвоить ей значение.

var example_id = 'some value';

Здесь 3 варианта для вас.

eval (не рекомендуется)

Вы можете использовать функцию eval для достижения желаемого. Но имейте это в виду, это не рекомендуется (я дважды подчеркивал это, надеюсь, вы поняли!).

Не используйте eval ненужно!

eval () – опасная функция, которая выполняет код, который передается с привилегиями вызывающего. Если вы запустите eval () со строкой, на которую может повлиять злонамеренная сторона, вы можете запустить вредоносный код на компьютере пользователя с разрешениями вашей веб-страницы / расширения. Что еще более важно, сторонний код может видеть область, в которой был вызван eval (), что может привести к возможным атакам таким образом, чтобы подобная функция не была восприимчивой.

Он будет использоваться следующим образом:

 eval('var ' + varName + ' = "something";'); 

Оконное обозначение объекта (лучше, чем eval , все еще не рекомендуется)

Этот метод состоит из использования объектной нотации, предоставленной JavaScript в глобальном объекте окна. Это загрязняет глобальную область окна и может быть отменено другими JS-файлами, что плохо. Если вы хотите узнать больше об этом предмете, это хороший вопрос: Хранение переменной в объекте JavaScript «window» является правильным способом использования этого объекта? ,

Чтобы использовать этот метод, вы бы сделали так:

 window[varName] = something; alert(window[varName]); 

Использование объекта (рекомендуется)

Лучшим решением будет создание вашей собственной переменной. Например, вы можете создать в глобальной области видимости переменную и присвоить ей объект. Затем вы можете использовать обозначение объекта для создания переменных динамики. Он работает так же, как и в окне:

 var globalScope = {}; function awesome(){ var localScope = {}; globalScope[varName] = 'something'; localScope[varName] = 'else'; notSoAwesome(); } function notSoAwesome(){ alert(globalScope[varName]); // 'something'; alert(localScope[varName]); // undefined } 

Вы можете сделать это с помощью javascript-объекта:

 var currForm = $(this).parents('form');//form id="hello" var obj = {}; obj[currForm.attr('id')] = 30; console.log(obj.hello) 

Вы можете использовать и объекты для хранения ваших переменных в:

 var variables = {}; 

для добавления переменной просто введите:

 variables[name] = value; 

и получить доступ к значению:

 variables[name] 

Посмотрите здесь: jsFiddle

Кнопка 2 читает значение переменных [formid], а кнопка 1 задает formid для отправки

Попробуйте выполнить одно из следующих действий:

 $(this).attr(example_id, "value") 

Или

 window[ currForm.attr(id)] = 12; 

Или

 window[ this.id ] = 12; 

Ваш лучший вариант для архивирования того, что вы действительно хотите, это использовать eval (), например:

 eval("var " + currForm.attr('id'); 

Проверьте эту ссылку ->

Динамические переменные в Javascript

Использовать eval (но не рекомендуется):

 var id = 'that_id'; eval(id+" = 'other id';"); alert(that_id); // results: 'other id'