JavaScript - Как объявить переменную с именем переменной на основе строки? - PullRequest
1 голос
/ 10 сентября 2010
var cur_storage_unit = $('#storage_unit').val();

$('.size_unit').change(function() {
    var id = $(this).attr('id');

    //This is how I want it to work, but not sure how
    'cur_' + id = $(this).val();
});

Пользователь «меняет» a класса «size_unit» и идентификатор «storage_unit». Затем я хочу установить значение cur_storage_unit на новое значение storage_unit. Я хочу, чтобы это работало курсивом, но я не уверен в синтаксисе того, как заставить его работать. Спасибо!

Ответы [ 3 ]

3 голосов
/ 10 сентября 2010

Если это глобально, вы можете сделать window['cur_'+id];

3 голосов
/ 10 сентября 2010

Вам, вероятно, лучше использовать объект и хранить его там.

var cur_storage_unit = $('#storage_unit').val();

var values = {};  // storage for multiple values

$('.size_unit').change(function() {
    var id = this.id;

    values['cur_' + id] = this.value;  // store this value in the "values" object
});

// Accessible via values object
alert( values["cur_theid"] );
3 голосов
/ 10 сентября 2010

вы можете создать новое свойство объекта, используя строку в качестве ключа

var myObj = {};
myObj['cur_'+id] = $(this).val();

так что в вашем случае вам нужен объект с известным именем, в который вы можете добавить свойства с динамическим именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...