jQuery或jQuery插件是否具有执行此功能的功能?

时间:2011-02-24 15:47:37

标签: jquery

我想知道jQuery或jQuery插件是否具有执行以下功能的功能:

function $array(a /* an ARRAY */, f /* a function */) {
    var $res = $();
    for (var i = 0; i < a.length; ++i)
        /* Notice: The result of evaluating f(a[i])
         *         shall always be a jQuery selector
         */
        $res.add(f(a[i]));
    return $res;
}

我发现这个功能非常有用,但如果它已经存在,我不想重新实现它。


编辑1:

我承认这个问题并不是特别清楚。我希望能够做到这样的事情:

$('<select>')
.append($array([
    { value: 0, name: 'Item 0' },
    { value: 1, name: 'Item 1' },
    { value: 2, name: 'Item 2' }
], function(option) {
    return $('<option>')
    .val(option.value)
    .html(option.name);
}))
.appendTo('body');

1 个答案:

答案 0 :(得分:3)

我认为这是map

实际上,如果函数的输入不是jQuery对象,那就不太对了。还有jQuery.map,您可以使用它来创建一个jQuery对象数组,但不返回jQuery对象本身。所以我认为你到底都没有。