Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.11.2015, 18:55
Новичок на форуме
Отправить личное сообщение для SeeJ Посмотреть профиль Найти все сообщения от SeeJ
 
Регистрация: 19.11.2015
Сообщений: 5

Перебор объектов и вывод значений
Добрый вече форумчане, помогите правильно перебрать объект.

Имеем объект с вложенными объектами. И структуру инпутов. Нужно перебором разместить в value инпутов значения объектов.

В примере показал 3 типа клиентов, данные в объекте: "min кол-во": "цена"

Ссылка на фидл



<div id="extra_prices2" class="container alert">
  <div id="price_to_all" class="panel col-xs-12" aria-labelledby="price_to_all-tab">
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
  </div>
  <div id="price_to_client1" class="panel col-xs-12" aria-labelledby="price_to_all-tab">
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
  </div>
  <div id="price_to_client2" class="panel col-xs-12" aria-labelledby="price_to_all-tab">
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
  </div>
</div>


var extra_values_group = '{"price_to_all":{"100":"1.546","200":"2.227"},"price_to_client1":{"100":"1.007","200":"0.124"},"price_to_client2":{"100":"1.007","200":"0.124"}}',
    extra_values = JSON.parse(extra_values_group, function (k, v) {
        return v;
    }),
    new_parent = $('#extra_prices2'),
    group_all = '#price_to_all',
    group_client1 = '#price_to_client1',
    group_client2 = '#price_to_client2',
    impact_initial = '.impact_initial',
    impact_extra_value = '.impact_extra_value',
    all_values = extra_values.price_to_all,
    all_initials = Object.keys(all_values),
    client1_values = extra_values.price_to_client1,
    client2_values = extra_values.price_to_client2;

console.log(extra_values);
console.log(all_values);
console.log(all_initials);

extravaluestoinput(group_all);

function extravaluestoinput(parent) {
	new_parent.find(parent).find(impact_extra_value).each(function() {
        for (var i in all_values) {
        	$(this).val(all_values[i]);
        };
	});
    new_parent.find(parent).find(impact_initial).each(function() {
        for (var i in all_initials) {
        	$(this).val(all_initials[i]);
        };
	});
}
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2015, 19:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

SeeJ,
и что должно быть в результате?
Ответить с цитированием
  #3 (permalink)  
Старый 30.11.2015, 19:39
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

SeeJ,
так?
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    <style>
    </style>
</head>
<body>
<div id="extra_prices2" class="container alert">
    <div id="price_to_all" class="panel col-xs-12" aria-labelledby="price_to_all-tab">
        <div class="form-group">
            <div class="col-xs-4">
                <input type="text" class="form-control impact_extra_value" value="">
            </div>
            <div class="col-xs-offset-1 col-xs-4">
                <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
                    <input type="text" class="form-control impact_initial" value="">
                </div>
            </div>
        </div>
        <div class="form-group">
            <div class="col-xs-4">
                <input type="text" class="form-control impact_extra_value" value="">
            </div>
            <div class="col-xs-offset-1 col-xs-4">
                <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
                    <input type="text" class="form-control impact_initial" value="">
                </div>
            </div>
        </div>
    </div>
    <div id="price_to_client1" class="panel col-xs-12" aria-labelledby="price_to_all-tab">
        <div class="form-group">
            <div class="col-xs-4">
                <input type="text" class="form-control impact_extra_value" value="">
            </div>
            <div class="col-xs-offset-1 col-xs-4">
                <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
                    <input type="text" class="form-control impact_initial" value="">
                </div>
            </div>
        </div>
        <div class="form-group">
            <div class="col-xs-4">
                <input type="text" class="form-control impact_extra_value" value="">
            </div>
            <div class="col-xs-offset-1 col-xs-4">
                <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
                    <input type="text" class="form-control impact_initial" value="">
                </div>
            </div>
        </div>
    </div>
    <div id="price_to_client2" class="panel col-xs-12" aria-labelledby="price_to_all-tab">
        <div class="form-group">
            <div class="col-xs-4">
                <input type="text" class="form-control impact_extra_value" value="">
            </div>
            <div class="col-xs-offset-1 col-xs-4">
                <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
                    <input type="text" class="form-control impact_initial" value="">
                </div>
            </div>
        </div>
        <div class="form-group">
            <div class="col-xs-4">
                <input type="text" class="form-control impact_extra_value" value="">
            </div>
            <div class="col-xs-offset-1 col-xs-4">
                <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
                    <input type="text" class="form-control impact_initial" value="">
                </div>
            </div>
        </div>
    </div>
</div>
<script>

    var extra_values_group = '{"price_to_all":{"100":"1.546","200":"2.227"},"price_to_client1":{"100":"1.007","200":"0.124"},"price_to_client2":{"100":"1.007","200":"0.124"}}',
            extra_values = JSON.parse(extra_values_group);
    for(var fKey in extra_values) {
        if($('#' +fKey)) {
            var nObj = extra_values[fKey];
            
            for(var key in nObj){
                $('#' +fKey).find('.impact_extra_value').val(nObj[key]);
                $('#' +fKey).find('.impact_initial').val(key);

            }
        }   
            
             
    }



</script>


</body>

</html>
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2015, 19:44
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

немного не так , сейчас попробую исправить
Ответить с цитированием
  #5 (permalink)  
Старый 30.11.2015, 19:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

ТС пропал ... остаётся гадать ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">


</head>

<body>  <div id="extra_prices2" class="container alert">
  <div id="price_to_all" class="panel col-xs-12" aria-labelledby="price_to_all-tab">
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
  </div>
  <div id="price_to_client1" class="panel col-xs-12" aria-labelledby="price_to_all-tab">
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
  </div>
  <div id="price_to_client2" class="panel col-xs-12" aria-labelledby="price_to_all-tab">
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
    <div class="form-group">
      <div class="col-xs-4">
        <input type="text" class="form-control impact_extra_value" value="">
      </div>
      <div class="col-xs-offset-1 col-xs-4">
        <div class="input-group"> <span class="input-group-addon"><span class="initial">min</span></span>
          <input type="text" class="form-control impact_initial" value="">
        </div>
      </div>
    </div>
  </div>
</div>
<script>
var extra_values_group = '{"price_to_all":{"100":"1.546","200":"2.227"},"price_to_client1":{"100":"1.007","200":"0.124"},"price_to_client2":{"100":"1.007","200":"0.124"}}',
    extra_values = JSON.parse(extra_values_group);
Object.keys(extra_values).forEach(function(a) {
    var b = document.querySelectorAll("#" + a + " input"),
        c = extra_values[a];
    Object.keys(c).forEach(function(a, e) {
        var d = 2 * e;
        b[d].value = c[a];
        b[++d].value = a
    })
});
  </script>
</body>

</html>

Последний раз редактировалось рони, 30.11.2015 в 20:39.
Ответить с цитированием
  #6 (permalink)  
Старый 30.11.2015, 20:34
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

рони,
красиво
Ответить с цитированием
  #7 (permalink)  
Старый 01.12.2015, 10:27
Новичок на форуме
Отправить личное сообщение для SeeJ Посмотреть профиль Найти все сообщения от SeeJ
 
Регистрация: 19.11.2015
Сообщений: 5

я тут, ребят)))вчера надо было бежать к жене на подмогу
рони, ща затестим))

update: Рони, гениально!Держи плюху в карму. Мало того что решил проблему еще и ужал код на переменных!

Последний раз редактировалось SeeJ, 01.12.2015 в 10:32. Причина: затестил)))
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод значений высчитанных в ng-repeat, после изменения scope lasfin Angular.js 4 04.07.2014 23:10
Нестабильно срабатывает вывод значений с формы NeVirus Элементы интерфейса 8 20.02.2013 09:34
вывод объектов в выпадающем списке Faab jQuery 2 25.08.2012 23:09
Перебор массива объектов Триви jQuery 12 26.08.2011 09:22
перебор всех возможных значений Yurik Общие вопросы Javascript 3 04.08.2011 14:25