这是我的html结构
<div class="parent">
<input class="child1" value="1">
<input class="child2" value="2">
<input class="child3" value="3">
</div>
我需要制作一个javascript数组
combined_array = {child1:“1”,child2:“2”,child3:“3”};
为此我写下面的代码。但这不正确。请帮助找出错误
$('.parent').children('input').each(function () {
var c_class=$(this).attr("class");
var c_value=$(this).val();
var combined_array={c_class:c_value};
});
alert(combined_array);
答案 0 :(得分:3)
您在每次迭代时重新初始化combined_array
变量,因此结果将是包含单个属性的对象。
而是初始化对象外部并在each()
方法回调中定义属性。
var combined = {};
$('.parent').children('input').each(function() {
var c_class = $(this).attr("class");
var c_value = $(this).val();
combined[c_class] = c_value;
});
console.log(combined);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent">
<input class="child1" value="1">
<input class="child2" value="2">
<input class="child3" value="3">
</div>
&#13;
答案 1 :(得分:0)
var combined_array={};
$('.parent').children('input').each(function () {
combined_array[$(this).attr("class")]=$(this).val();
});
console.log(combined_array);
//alert(combined_array);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="parent">
<input class="child1" value="1">
<input class="child2" value="2">
<input class="child3" value="3">
</div>
&#13;