отражение в javascript / jQuery - PullRequest
       0

отражение в javascript / jQuery

1 голос
/ 04 апреля 2011

У меня есть объект json;

a.Name = "John";
a.Nick = "Smith";
a.Info = "hi there";

и некоторые HTML, как это:

<input id="Name" />
<input id="Nick" />
<input id="Info" />

возможно ли автоматически устанавливать значения этих входов в соответствии с именами свойств объекта?

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

Ответы [ 3 ]

7 голосов
/ 04 апреля 2011

Поскольку идентификаторы в любом случае должны быть уникальными, вот более эффективное решение:

$.each(a, function(k, v) {
  $('#' + k).val(v);
});

Конечно, это еще быстрее:

$.each(a, function(k, v) {
  (document.getElementById(k) || {}).value = v;
});

Если вы предпочитаете не использовать jQuery навсе, вы можете сделать это следующим образом:

for (var i in a) {
  (document.getElementById(i) || {}).value = a[i];
});

Редактировать: Обновлены два последних ответа, так как OP упомянул, что некоторые входные данные могут не существовать.

7 голосов
/ 04 апреля 2011

Вы хотите сделать это?

$.each(a, function(k,v) {
    $('input[id='+k+']').val(v);
})
1 голос
/ 04 апреля 2011

попробуйте это:

for (var prop in a) { 
  alert(propertyName + ' => ' + a[propertyName]); 
}

эта версия не нуждается в jQuery;)

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