javascript数组不起作用

时间:2016-11-19 09:37:26

标签: javascript jquery

这是我的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);

2 个答案:

答案 0 :(得分:3)

您在每次迭代时重新初始化combined_array变量,因此结果将是包含单个属性的对象。

而是初始化对象外部并在each()方法回调中定义属性。

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

&#13;
&#13;
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;
&#13;
&#13;