¿Hay alguna manera de hacer un 'alcance' add () en jQuery?

votos
1

El método jQuery principal toma un segundo argumento opcional para proporcionar el contexto para la búsqueda. p.ej

$(.setA, ancestorOfSetsA);

Sin embargo, el add()método jQuery no acepta este argumento de contexto. Lo que intento lograr es:

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

Estoy intentando esto a través de un complemento que sobrecargará el add()método pero no puedo encontrar la manera de combinar dos objetos jQuery en un solo objeto jQuery.

Me gustaría encontrar una forma de hacer un alcance add()con jQuery, pero en su defecto, escribiré uno si puedo encontrar una forma de fusionarme con objetos jQuery.

Publicado el 09/12/2008 a las 20:39
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
2

Puede pasar una colección jQuery addtan bien como una cadena de selector:

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

Si desea sobrecargar add, tendrá que tener cuidado para soportar todo su comportamiento. Alguien (un complemento que podría estar usando) podría hacer esto:

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

Actualizado:

Aquí está la función de adición actual de jQuery modificada para tomar un 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 )
    )));
}
Respondida el 09/12/2008 a las 21:53
fuente por usuario

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