Hai Tien
Hai Tien

Reputation: 3117

For loop and get Element?

I have a for loop like :

for(i=0; i<6; i++)
{
if(i=0)
{a1 = '<div>something1</div>';}
if(i>=1 & i<=5)
{b1 = '<div>something2</div>';}
}
document.getElementById('example').innerHTML = a1 + b1;

<div id='example'></div>

Result just have : <div>something1</div><div>something2</div>

I want result :

<div>something1</div>
<div>something2</div>
<div>something2</div>
<div>something2</div>
<div>something2</div>
<div>something2</div>

How can I do this with for loop above. Thanks for your help.

Upvotes: 0

Views: 73

Answers (4)

Sandip Rabade
Sandip Rabade

Reputation: 33

Try Following Code :

var a1='';
var b1='';
for(i=0; i<6; i++)
{
   if(i==0)
   {
      a1 = '<div>something1</div>';
   }
   else if(i<6)
   {
      b1=b1+ '<div>something2</div>';
   }
}
document.getElementById('example').innerHTML = a1 + b1;

Upvotes: 1

var append_data;
for (i = 0; i < 6; i++) {
    if(i == 0){
        append_data += '<div>something1</div>';
    }else{
         append_data += '<div>something2</div>';
    }
}
document.getElementById('example').innerHTML = append_data;

Upvotes: 1

Osiris
Osiris

Reputation: 4185

for(i=0; i<6; i++)
{
if(i==0)
{a1 = '<div>something1</div>';}
if(i>=1 && i<=5)
{b1 = '<div>something2</div>';}
}
document.getElementById('example').innerHTML = a1 + b1;

<div id='example'></div>

Check out a introductory JavaScript reference. = is the assignment operator. Use == to check for equality, && for logical AND.

Upvotes: 1

Arun P Johny
Arun P Johny

Reputation: 388316

You are overriding the same variable b instead of appending values to it.

One solution I would use in such a case is to use a array(updated to use 2 arrays to support much complete cases in which there could be a/b values interchangeably appearing).

var array1 = [], array2 = [];
for (i = 0; i < 6; i++) {
    if (i = 0) {
        array1.push('<div>something1</div>');
    }
    if (i >= 1 & i <= 5) {
        array2.push('<div>something2</div>');
    }
}
document.getElementById('example').innerHTML = array1.join('') + array2.join('');

or use string concatenation

var a = '',
    b = '';
for (i = 0; i < 6; i++) {
    if (i = 0) {
        a1 += '<div>something1</div>';
    }
    if (i >= 1 & i <= 5) {
        b1 += '<div>something2</div>';
    }
}
document.getElementById('example').innerHTML = a1 + b1;

Upvotes: 2

Related Questions