jqueryfor-loopjquery-append

for loop inside the append is not working


below is my code.

$("<table/>",{"cellspacing":"0","cellpadding":"0","border":"0","width":"100%"})
.append(
$("<tbody/>")
.append(function(){

    options=["ONE","TWO","THREE","FOUR"];
    $.each(options, function(val) {
        return ($("<tr/>")
        .append(
            $("<td/>").html("4/6/2013 10:41"),
            $("<td/>").html("5/6/2013 10:42"),
            $("<td/>").html(val),
            $("<td/>").html("<img src='pdf_16x16.png'/>"),
            $("<td/>").html("<a href='#'>Re-Upload Documents</a>")
        ));
    })

})
).appendTo("body");

for loop inside the append is not working.


Solution

  • The problem is because you are not returning anything from the append function, only the each loop within it. Try this:

    $("<tbody/>").append(function(){
        options = ["ONE","TWO","THREE","FOUR"];
        var $container = $('<table></table>');
    
        $.each(options, function(val) {
            $container.append($("<tr/>").append(
                $("<td/>").html("4/6/2013 10:41"),
                $("<td/>").html("5/6/2013 10:42"),
                $("<td/>").html(val),
                $("<td/>").html("<img src='pdf_16x16.png'/>"),
                $("<td/>").html("<a href='#'>Re-Upload Documents</a>")
            ));
        });
    
        return $container.html();
    });
    

    Example fiddle