2013-03-28 3 views
3

Мне нравится иметь возвращаемое значение с одним или несколькими объектами jQuery, чтобы добавить их в.Объединить два объекта jQuery

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

Правильный пример с двумя с:

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; 
} 
+0

почему бы просто не сделать '$ ('div.a, div.b') каждая (функция() {' внутри каждой функции, '$ (это) 'ссылается на текущий объект jquery –

ответ

10

Вы можете использовать jQuery .add() method:

return a.add(b); 

Из документов:

Учитывая объект JQuery, который представляет собой набор элементов DOM, метод .add() создает новый объект JQuery из объединения этих элементов и те, переданных в метод.

+0

чертовски дерьмо. Это слишком просто - я просто не нашел этот метод :) – iRaS

+0

@iRaS - Yup, очень легко! Документы jQuery - хорошее место для начала ... Я бы порекомендовал вам потратить час или около того, чтобы прочитать их. –

+0

Вы абсолютно правы. Я много читал в документации. Это последний способ опубликовать вопрос. Но я думал, что это объект с массивными элементами массива, поэтому я попробовал extend() и merge() и прочитал документацию о чтении и объединении. Это не помогло мне, и нет ссылки на add() .. – iRaS

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; 
} 

Может быть, у вас есть лучшие решения? Вы не очень хорошо знаете.

0

Проверьте это:..

var $bindDivs = $.merge($('#div1'), $('#div2')); 
+2

Пожалуйста, объясните свой ответ – Mazz

+0

@Mazz Я действительно думаю, что это довольно просто. Я просто использую jQuery.merge для унификации двух объектов в одном. Я тестировал его, и он работает очень хорошо. Я использую его сам. – AndersonSouza

+0

Тем не менее вы всегда должны объяснять свои ответы – Mazz

Смежные вопросы