Existe uma maneira de fazer um 'escopada' add () em jQuery?

votos
1

O principal método jQuery leva um segundo argumento opcional para fornecer o contexto para a pesquisa. por exemplo

$(.setA, ancestorOfSetsA);

No entanto, o jQuery add()método não aceita este argumento contexto. O que estou tentando fazer é:

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

Eu estou tentando isso através de um plugin que irá sobrecarregar o add()método, mas eu não consigo descobrir como combinar dois objetos jQuery em um objeto jQuery.

Eu gostaria de encontrar uma maneira de fazer um escopo add()com jQuery, mas na sua falta, eu vou escrever um para mim se eu posso encontrar uma maneira de fundir a objetos jQuery.

Publicado 09/12/2008 em 20:39
fonte usuário
Em outras línguas...                            


1 respostas

votos
2

Você pode passar uma coleção jQuery em addtão bem como uma cadeia de seletor:

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

Se você quer sobrecarregar addentão você precisa ter cuidado para suportar a todo o seu comportamento. Alguém (um plugin que você pode estar usando) pode fazer isso:

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

Atualizada:

Aqui é a função add atual do jQuery modificado para ter um parâmetro de contexto:

jQuery.fn.add = function( selector, context ) {
    return this.pushStack( jQuery.unique( jQuery.merge(
        this.get(),
        typeof selector == 'string' ?
            jQuery( selector, context ) :
            jQuery.makeArray( selector )
    )));
}
Respondeu 09/12/2008 em 21:53
fonte usuário

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