1
votes

this is my html strcture

<div class="parent">
    <input class="child1" value="1">
    <input class="child2" value="2">
    <input class="child3" value="3">

</div>

i need to make a javascript array

combined_array={child1:"1", child2:"2", child3:"3"};

for this i write the following code . But it is not correct . Please help to find out error

$('.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
What is your result? - henrybbosa
That's an object and not an array - Andreas

2 Answers

3
votes

You are re-initializing the combined_array variable on each iteration so the result would be an object containing single property.

Instead initialize object outside and define property within the each() method callback.

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);
<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>
0
votes

var combined_array={};
$('.parent').children('input').each(function () {
       combined_array[$(this).attr("class")]=$(this).val();
});
console.log(combined_array);
//alert(combined_array);
<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>