我有一些带有comman名称属性的输入datalist的html我想存储来自输入数组的所有数据但是没有存储。我试过jQuery push()。但它只存储第一个价值。
的 HTML
<div id="div-childage">
<input list="childage" name="childage">
<datalist id="childage">
<option value="0">
<option value="1">
<option value="2">
</datalist>
<input list="childage" name="childage">
<datalist id="childage">
<option value="0">
<option value="1">
<option value="2">
</datalist>
<input list="childage" name="childage">
<datalist id="childage">
<option value="0">
<option value="1">
<option value="2">
</datalist>
<input list="childage" name="childage">
<datalist id="childage">
<option value="0">
<option value="1">
<option value="2">
</datalist>
</div>
我使用的jQuery
var childagearray = [];
$('#div-childage').each(function() {
childagearray.push($("input[name='childage']").val());
});
var childage = JSON.stringify(childagearray);
输出需要整数数组
答案 0 :(得分:1)
您应该为每个数据专家提供一个唯一的id
,否则它将始终返回第一个id
$('button').click(function() {
var childagearray = [];
$('input').each(function() {
childagearray.push($(this).val());
});
console.log(childagearray)
var childage = JSON.stringify(childagearray);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="childage">
<input list="childage1" name="childage">
<datalist id="childage1">
<option value="0" selected>
<option value="1">
<option value="2">
</datalist>
<input list="childage2" name="childage">
<datalist id="childage2">
<option value="0">
<option value="1">
<option value="2">
</datalist>
<input list="childage3" name="childage">
<datalist id="childage3">
<option value="0">
<option value="1">
<option value="2">
</datalist>
<input list="childage4" name="childage">
<datalist id="childage4">
<option value="0">
<option value="1">
<option value="2">
</datalist>
</div>
<button>Push data</button>
答案 1 :(得分:0)
首先,您有多个具有相同id
属性且无效的元素。 Id必须是文档的唯一标识。要对元素进行分组,请将id转换为类:
<div id="childage-container">
<input list="childage" name="childage">
<datalist class="childage">
<option value="0">
<option value="1">
<option value="2">
</datalist>
<input list="childage" name="childage">
<datalist class="childage">
<option value="0">
<option value="1">
<option value="2">
</datalist>
<input list="childage" name="childage">
<datalist class="childage">
<option value="0">
<option value="1">
<option value="2">
</datalist>
<input list="childage" name="childage">
<datalist class="childage">
<option value="0">
<option value="1">
<option value="2">
</datalist>
</div>
从那里你可以使用map()
来创建你需要的数组:
var childagearray = $('.childage').map(function() {
return $(this).val();
}).get();
var childage = JSON.stringify(childagearray);
答案 2 :(得分:0)
试试此代码
var childagearray = [];
$('#div-childage').find('input[name="childage"]').each(function() {
childagearray.push($(this).val());
});
console.log(childagearray);
var childage = JSON.stringify(childagearray);