#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]});