使用jQuery.each()进行链式操作

4
我正在尝试将对象中的结果添加到新创建的HTML元素中:
*long chain of newly created elements*.append(
    $("<div />").append(
        $.each(myObj.results, function( intIndex, objValue ){
            return objValue.description;
        })
    )
);

如果我使用一个包含for循环的函数调用,它可以工作,但是没有办法使用each()方法实现这个功能吗?
2个回答

3

.each只是遍历一个集合,你需要一个匿名函数来返回一些东西,所以尝试这个:

$("<div />").append(function(){
        var string = "":
        $.each(myObj.results, function( intIndex, objValue ){
               string += objValue.description;
            })
        return string;
    });

2

.each 是用于遍历列表并执行操作的,你可以通过使用 $.map 实现你想要的功能。它会在每次迭代中返回元素并构建一个数组。

*long chain of newly created elements*.append(
    $("<div />").append(function(){
        var des = $.map(myObj.results, function( objValue ){
                     return objValue.description;
                  });
        return des.join(' ');
      });
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接