Вы можете просто использовать один $.each
, чтобы получить data-date
. Вместо .attr
вы также можете использовать .data
для получения дат каждого ввода, который находится в родительском классе.
Так как немного неясно, что вы пытаетесь сохранить. Я добавил сценарий ios, который учитывает ваш вопрос.
Вы можете выбрать то, что вам подходит лучшее из трех рабочих demos
.
Демо: Отображение входного значения и соответствующих данных этого входа
var Items_parent = [];
$(".parent input").each(function(index, data) {
//get date
var date = $(this).data('date');
//name
var value = $(this).val()
//Push date
var obj = {};
//Obj
obj[value] = date
//Push
Items_parent.push(obj);
});
console.log(Items_parent)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent">
<input name="sub[0]" data-date="2020-08-04" value="1">
<input name="sub[1]" data-date="2020-08-05" value="2">
<input name="sub[1]" data-date="2020-08-06" value="3">
</div>
<div class="parent">
<input name="sub[0]" data-date="2020-08-04" value="4">
<input name="sub[1]" data-date="2020-08-05" value="5">
<input name="sub[1]" data-date="2020-08-06" value="6">
</div>
<div class="parent">
<input name="sub[0]" data-date="2020-08-04" value="7">
<input name="sub[1]" data-date="2020-08-05" value="8">
<input name="sub[1]" data-date="2020-08-06" value="9">
</div>
Демо: Отображение каждой даты ввода как {date: XXXX-XX-XX}
var Items_parent = [];
$(".parent input").each(function(index, data) {
//get date
var date = $(this).data('date');
//Push date
Items_parent.push({
date: date
});
});
//All item
console.log(Items_parent)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent">
<input name="sub[0]" data-date="2020-08-04" value="1">
<input name="sub[1]" data-date="2020-08-05" value="2">
<input name="sub[1]" data-date="2020-08-06" value="3">
</div>
<div class="parent">
<input name="sub[0]" data-date="2020-08-04" value="4">
<input name="sub[1]" data-date="2020-08-05" value="5">
<input name="sub[1]" data-date="2020-08-06" value="6">
</div>
<div class="parent">
<input name="sub[0]" data-date="2020-08-04" value="7">
<input name="sub[1]" data-date="2020-08-05" value="8">
<input name="sub[1]" data-date="2020-08-06" value="9">
</div>
Демо: Отображение каждого ввода как {sub [X]: XXXX-XX-XX}
Если вы хотите получить имя каждого входа с его датой, тогда вы делаете что-то вроде этого.
var Items_parent = [];
$(".parent input").each(function(index, data) {
//get date
var date = $(this).data('date');
//name
var name = $(this).attr('name');
//Push date
var obj = {};
//Obj
obj[name] = date
//Push
Items_parent.push(obj);
});
console.log(Items_parent)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="parent">
<input name="sub[0]" data-date="2020-08-04" value="1">
<input name="sub[1]" data-date="2020-08-05" value="2">
<input name="sub[1]" data-date="2020-08-06" value="3">
</div>
<div class="parent">
<input name="sub[0]" data-date="2020-08-04" value="4">
<input name="sub[1]" data-date="2020-08-05" value="5">
<input name="sub[1]" data-date="2020-08-06" value="6">
</div>
<div class="parent">
<input name="sub[0]" data-date="2020-08-04" value="7">
<input name="sub[1]" data-date="2020-08-05" value="8">
<input name="sub[1]" data-date="2020-08-06" value="9">
</div>