Заполнение полей формы из канала JSON с помощью forEach или для цикла (JS)

#javascript #forms #for-loop #foreach

Вопрос:

У меня есть такие поля формы, как эти

 <input id="first">
<input id="second">
<textarea id="third"></textarea>
...
 

и мне нужно динамически заполнять их данными из канала JSON.
Идентификатор каждого поля соответствует ключу каждого JSON, поэтому я могу заполнить эти поля таким образом:

 first.value = feed.first;
second.value = feed.second;
third.value = feed.third;
...
 

Но я хотел бы сделать это проще.

Это то, что я пробовал:

 ["first", "second", "third"].forEach(e => {e.value = feed[e]});
 

К сожалению, это не работает. В консоли я вижу значения канала JSON ( feed[e] ), но поля формы пусты.

Что я делаю не так?

Любые предложения будут высоко оценены.

Ответ №1:

Вы можете попробовать использовать document.getElementById, чтобы получить конкретный элемент DOM
, а затем назначить нужное значение.

 const feed = {
    'first': 'hello',
    'second': 'word',
    'third': '!'
};

['first', 'second', 'third'].forEach(e => {
    document.getElementById(e).value = feed[e]
});
 

Ссылка ниже является полной демонстрацией.
https://jsfiddle.net/2x0o8d4m/1/

Ответ №2:

Пожалуйста, используйте функцию eval.

[«первый», «второй», «третий»].forEach(e => {eval(e).значение = подача[e]});