5

我喜欢有一个带有一个或多个 jQuery 对象的返回值,以便将它们添加到 .

var f = function() {
    var a = $('<div class="a" />');
    // do someting awesome
    return a;
};

带有两个 s 的正确示例:

var f = function() {
    var ret = $('<div class="a" /><div class="b" />');
    // do something spectecular
    return ret;
};

问题是我需要在函数内部分离这两个对象,这不是正确的代码:

var f = function() {
    var a = $('<div class="a" />'),
        b = $('<div class="b" />'),
        ret = a+b;
    // do something fabulous
    return ret;
}
4

3 回答 3

11

您可以使用jQuery.add()方法

return a.add(b);

从文档:

给定一个表示一组 DOM 元素的 jQuery 对象,.add() 方法从这些元素的并集和传递给该方法的元素构造一个新的 jQuery 对象。

于 2013-03-28T11:08:49.610 回答
0

我刚刚为自己的问题找到了解决方案:

var f = function() {
    var a = $('<div class="a" />'),
        b = $('<div class="b" />'),
        ret = $.extend({}, a);
    ret.push(b[0]);
    // do something fabulous
    return ret;
}

也许你有更好的解决方案?它看起来不太好你知道的。

于 2013-03-28T11:09:36.570 回答
0

看一下这个:

var $bindDivs = $.merge( $( '#div1' ), $( '#div2' ) );
于 2017-04-12T12:56:58.623 回答