I need help: I have one object with multiple array inside; i need to cycle all my array values and then append this values inside my HTML div list (with the same class). object[0] with div[0]; object[1] with div[1] ecc…
This is an example:
<!-- HTML --> <body> <div class="appendDiv"> <h1>First</h1> </div> <div class="appendDiv"> <h1>Second</h1> </div> </body>
⁄⁄JS var values = [ { 'name': "john" }, { 'name': "doe" } ] for (var i = 0; i < values.length; i++) { value = values[i]; var name = value.name; $('.appendDiv').each(function(index, val){ if (i === index) { $('.appendDiv').append('<p>' + name + '</p>'); } }) }
But this method return to me with a wrong result like this:
First John Doe
Second John Doe
I need a result like this:
First (my first .appendDiv [0]) John (my first array name value [0])
Second (my second .appendDiv [1]) Doe (my second array name value [1])
Thank you.
Advertisement
Answer
You should only need 1 for each loop on your Div
. You can uses the index to see if the corresponding array contains a value.
If you’re comparing with index, then the code should have an if statement to check data exists (to prevent possible null exceptions).
var values = [ { 'name': "john" }, { 'name': "doe" } ] $('.appendDiv').each(function (index) { var value = values[index]; if (value && value.name) { $(this).append('<p>' + value.name + '</p>'); } });
Output:
<div class="appendDiv"> <h1>First</h1> <p>john</p> </div> <div class="appendDiv"> <h1>Second</h1> <p>doe</p> </div>