Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2016, 07:54
wet wet вне форума
Интересующийся
Отправить личное сообщение для wet Посмотреть профиль Найти все сообщения от wet
 
Регистрация: 12.07.2016
Сообщений: 14

Массив не принимает значение переменной как ключ
Есть инпуты
<input class='in' type='text' data-id='1' value='text 1'>
<input class='in' type='text' data-id='2' value='text 2'>
<input class='in' type='text' data-id='3' value='text 3'>
<input class='in' type='text' data-id='4' value='text 4'>
Пробегаемс я по ним с помощью each
var answer = [];
 
$('.in').each(function(){
    var cur_el = $(this);
    var id = cur_el.attr('data-id');
    id = parseInt( id );
    var input = cur_el.val();
    
    console.log(question_id);
 
    answer = {id : input};
    //answer.question_id = input;
}); 
 
console.log(answer);
Нужно записать в массив data-id как ключ и value как значение, но почему-то переменная id при записи в массив принимается как строка. Подскажите почему такое поведение и как исправить?
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2016, 08:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

wet,
11 строка убивает массив
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2016, 08:07
wet wet вне форума
Интересующийся
Отправить личное сообщение для wet Посмотреть профиль Найти все сообщения от wet
 
Регистрация: 12.07.2016
Сообщений: 14

Сообщение от рони Посмотреть сообщение
wet,
11 строка убивает массив
Прописал так
answer.push({id : input});
Но все равно переменная id воспринимается как строка((
answer[id] = input;

А вот так вообще выкидывает undefined: [undefined, "text 1", "text 2", "text 3", "text 4"]

Последний раз редактировалось wet, 04.08.2016 в 08:12.
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2016, 08:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

wet,
может вы хотели так
var answer = {};

$('.in').each(function(){
    var cur_el = $(this);
    var id = cur_el.attr('data-id');
    id = parseInt( id );
    var input = cur_el.val();
    answer[id] = input;

});

или так
var answer = [];

$('.in').each(function(){
    var cur_el = $(this);
    var id = cur_el.attr('data-id');
    id = parseInt( id );
    var input = cur_el.val();
    answer.push({id : input}) ;

});
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2016, 08:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от wet
переменная id воспринимается как строка
а как иначе то? все ключи строки
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2016, 08:30
wet wet вне форума
Интересующийся
Отправить личное сообщение для wet Посмотреть профиль Найти все сообщения от wet
 
Регистрация: 12.07.2016
Сообщений: 14

Сообщение от рони Посмотреть сообщение
wet,
может вы хотели так
var answer = {};

$('.in').each(function(){
    var cur_el = $(this);
    var id = cur_el.attr('data-id');
    id = parseInt( id );
    var input = cur_el.val();
    answer[id] = input;

});
Огромное спасибо! Все дело было в кавычках var answer = {};
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать значение в функцию в переменную с нужным именем? bratkovsky Общие вопросы Javascript 1 12.10.2015 08:18
Как связать значение с переменной? oneplus Элементы интерфейса 2 19.08.2015 17:31
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Как передать значение переменной? maksbp22 Общие вопросы Javascript 0 11.10.2013 16:21