Есть ли способ, чтобы сделать «контекстные» добавить () в JQuery?

голоса
1

Основной метод JQuery принимает второй необязательный аргумент, чтобы обеспечить контекст для поиска. например

$(.setA, ancestorOfSetsA);

Однако JQuery add()метод не принимает этот контекст аргумент. То , что я пытаюсь сделать это:

$(.setA, ancestorOfSetsA).add(.setB, ancestorOfSetsB);

Я пытаюсь это через плагин , который будет перегружать add()метод , но я не могу понять, как объединить два объекта JQuery в один объект JQuery.

Я хотел бы найти способ , чтобы сделать область видимости add()с JQuery, но если это невозможно, я буду писать один я , если я могу найти способ объединить с объектами JQuery.

Задан 09/12/2008 в 20:39
источник пользователем
На других языках...                            


1 ответов

голоса
2

Вы можете передать коллекцию JQuery в addточно так же , как строку селектора:

$(".setA", ancestorOfSetsA).add( $(".setB", ancestorOfSetsB) );

Если вы хотите перегрузить , addто вам нужно быть осторожным , чтобы поддержать все его поведение. Кто - то (плагин можно использовать) , возможно , сделать это:

$( selector ).add('<div>new element</div>').appendTo( somethere );

Обновлено:

Вот текущая функция дополнения из JQuery модифицирована для параметра контекста:

jQuery.fn.add = function( selector, context ) {
    return this.pushStack( jQuery.unique( jQuery.merge(
        this.get(),
        typeof selector == 'string' ?
            jQuery( selector, context ) :
            jQuery.makeArray( selector )
    )));
}
Ответил 09/12/2008 в 21:53
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more