samuel toh
samuel toh

Reputation: 7086

How can I add loop in after function?

My javascript is like this :

$('#thumbnail-view').after(` for(i=0;i<5;i++){ <div>....</div }`);

I want to add loop in after like that

How can I do it?

Upvotes: 1

Views: 104

Answers (3)

mechanicals
mechanicals

Reputation: 685

This how you can achieve what you need exactly.

$('#thumbnail-view').after((function(){
        // Here you can write you for loop and return the concatenated string
        var str = ""; 
        for(var i=0; i< 10; i++) {
            str = str + "<div>test</div>";
        }
        return str;
    })());
});

It basically creates an IFFE. which executes immediately and returns a string for '$.after()' to consume.

Upvotes: 1

Sam
Sam

Reputation: 317

What you really need is to create a variable that has all the elements you want. then pass that variable to the after. Do not create a function inside of after. There is no need for it.

$(document).ready(function(){
  var divvs = '';
  for(var i=0;i<5;i++){
    divvs+= '<div>hello</div>'
  }
  $('.block').after(divvs);
});

Here is the fiddle for reference http://jsbin.com/biluqanupo/edit?html,js,output

Upvotes: 0

Thomas James Tiam-Lee
Thomas James Tiam-Lee

Reputation: 691

You can build the string first, before calling the after() function.

For example, this appends the string 123456789 using a loop.

var res = "";
for (var i = 1; i <= 9; i++) {
    res += i;
}
$('#thumbnail-view').after(res);

Upvotes: 2

Related Questions