Доступ к переменной вне jquery каждого цикла - PullRequest
0 голосов
/ 29 января 2019

Я сделал каждый цикл, который проходит по всем div-элементам. Calles Открытие_class затем ищет все входные данные и сохраняет значение в массиве глобальных открытий.

Но .. переменная открытия остается пустой ..

Javascript

var openings = [];
$('.opening_class').each(function () {
    var id = $(this).attr('id');
    var inputs = [];
    $('.opening_class input').each(function (i) {
        inputs.push($(this).val());
    });
    openings[id] = inputs;
});

alert(JSON.stringify(openings));

Входные данные имеют вход, но он не устанавливает его в массив глобальных открытий.

Если кто-то может помочь, это было бы здорово

HTML

<div class="row justify-content-between justify-content-center align-content-center opening_class" id="openingstijden">
    <div class="col-3 p-2 text-center font-weight-bold">Maandag:</div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_ma_1" placeholder="Van" required="">
            </div>
        </div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_ma_2" placeholder="Tot" required="">
            </div> 
        </div>
        <div class="col-3 p-2 text-center font-weight-bold">Dinsdag:</div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_di_1" placeholder="Van" required="">
            </div>
        </div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_di_2" placeholder="Tot" required="">
            </div> 
        </div>
        <div class="col-3 p-2 text-center font-weight-bold">Woensdag:</div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_wo_1" placeholder="Van" required="">
            </div>
        </div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_wo_2" placeholder="Tot" required="">
            </div> 
        </div>
        <div class="col-3 p-2 text-center font-weight-bold">Donderdag:</div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_do_1" placeholder="Van" required="">
            </div>
        </div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_do_2" placeholder="Tot" required="">
            </div> 
        </div>
        <div class="col-3 p-2 text-center font-weight-bold">Vrijdag:</div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_vr_1" placeholder="Van" required="">
            </div>
        </div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_vr_2" placeholder="Tot" required="">
            </div> 
        </div>
        <div class="col-3 p-2 text-center font-weight-bold">Zaterdag:</div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_za_1" placeholder="Van" required="">
            </div>
        </div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_za_2" placeholder="Tot" required="">
            </div> 
        </div>
        <div class="col-3 p-2 text-center font-weight-bold">Zondag:</div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_zo_1" placeholder="Van" required="">
            </div>
        </div>
        <div class="form-group col-4 p-0 m-0">
            <div class="input-group">
                <input type="text" class="form-control" id="openingstijden_zo_2" placeholder="Tot" required="">
            </div> 
        </div>
    </div>
</div>

Ответы [ 2 ]

0 голосов
/ 29 января 2019

У вас есть пара проблем в коде.

должен быть объектом, а не массивом

var openings = {};

С помощью следующего кода вы выбираете все открывающие элементы классаи захватывая все входы.Вы НЕ захватываете входные данные внутри класса, для которого вы читаете идентификатор для

$('.opening_class input').each(function (i) {  // here you are

Вы должны использовать это и найти

$(this).find('input').each(function (i) {  // here you are

Вы также можете улучшить свой код, чтобы использовать карту jQuery()

var openings = {};
$('.opening_class').each(function() {
  var elem = $(this)
  var id = elem.attr('id');
  var inputs = elem.find('input').map(function(i) {
    return this.value
  }).get();
  openings[id] = inputs;
});

console.log(JSON.stringify(openings));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row justify-content-between justify-content-center align-content-center opening_class" id="openingstijden">
  <div class="col-3 p-2 text-center font-weight-bold">Maandag:</div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_ma_1" placeholder="Van" required="">
    </div>
  </div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_ma_2" placeholder="Tot" required="">
    </div>
  </div>
  <div class="col-3 p-2 text-center font-weight-bold">Dinsdag:</div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_di_1" placeholder="Van" required="">
    </div>
  </div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_di_2" placeholder="Tot" required="">
    </div>
  </div>
  <div class="col-3 p-2 text-center font-weight-bold">Woensdag:</div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_wo_1" placeholder="Van" required="">
    </div>
  </div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_wo_2" placeholder="Tot" required="">
    </div>
  </div>
  <div class="col-3 p-2 text-center font-weight-bold">Donderdag:</div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_do_1" placeholder="Van" required="">
    </div>
  </div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_do_2" placeholder="Tot" required="">
    </div>
  </div>
  <div class="col-3 p-2 text-center font-weight-bold">Vrijdag:</div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_vr_1" placeholder="Van" required="">
    </div>
  </div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_vr_2" placeholder="Tot" required="">
    </div>
  </div>
  <div class="col-3 p-2 text-center font-weight-bold">Zaterdag:</div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_za_1" placeholder="Van" required="">
    </div>
  </div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_za_2" placeholder="Tot" required="">
    </div>
  </div>
  <div class="col-3 p-2 text-center font-weight-bold">Zondag:</div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_zo_1" placeholder="Van" required="">
    </div>
  </div>
  <div class="form-group col-4 p-0 m-0">
    <div class="input-group">
      <input type="text" class="form-control" id="openingstijden_zo_2" placeholder="Tot" required="">
    </div>
  </div>
</div>
</div>
0 голосов
/ 29 января 2019

JS Array не может содержать ключи, такие как массивы в php.Вам нужно использовать

var openings = {};

Вместо

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