在变量中执行循环

时间:2014-07-21 11:25:36

标签: javascript jquery

是否可以这样做。 ?

var html = '<div class="list-group">'+
      $.each(val,function(key,value){
             'value: ' +  value + '<br/>'
      })
+'</div>';

我期待答案是这样的:

<div class="list-group">
    value: value1
    value: value2
    value: value3
</div>

但为什么我得到这个结果?

<div class="list-group">
    [object Object],[object Object],[object Object]
</div>

任何人都可以告诉我,我在做什么是绝对错误的。

我应该如何使用代码来获得预期的结果? 谢谢!

2 个答案:

答案 0 :(得分:3)

您重新连接调用$.each()的结果,在jQuery的情况下,返回整个列表val。你想要做的是调用$.map(),它会为val的每个项返回一系列回调结果。然后,您需要将join()字符串放在一起。应该看起来像这样(未经测试):

var html = '<div class="list-group">'+
      $.map(val,function(key,value){
           return 'value: ' +  value + '<br/>';
      }).join()
+'</div>';

答案 1 :(得分:1)

尝试在此上下文中使用$.map()忽略$.each()

var html  = '<div class="list-group">';
html += $.map(val,function(key,value){
            return 'value: ' +  value + '<br/>'
});
html+ = '</div>';