Gibt es eine Möglichkeit ein zu tun ‚scoped‘ () in jQuery hinzufügen?

stimmen
1

Das Haupt jQuery Methode nimmt ein zweites optionales Argument Kontext für die Suche zur Verfügung zu stellen. z.B

$(.setA, ancestorOfSetsA);

Allerdings ist die jQuery add()hat Methode , um diesen Kontext Argument nicht akzeptieren. Was ich versuche zu tun ist:

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

Ich bin versucht , dies durch ein Plugin , das die überlasten add()Methode , aber ich kann nicht herausfinden , wie zwei jQuery Objekte in ein jQuery - Objekt zu kombinieren.

Ich möchte einen Weg finden , ein scoped zu tun add()mit jQuery, aber in Ermangelung eines solchen, werde ich mich ein schreiben , wenn ich einen Weg , um jQuery Objekte zu verschmelzen finden.

Veröffentlicht am 09/12/2008 um 20:39
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
2

Sie können eine jQuery - Sammlung in geben addgenausogut als Selektor - String:

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

Wenn Sie zu überlasten wollen adddann müssen Sie vorsichtig sein , die alle ihr Verhalten zu unterstützen. Jemand (ein Plugin , das Sie verwenden könnte) könnte dies tun:

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

Aktualisiert:

Hier ist die aktuelle Add-Funktion von jQuery modifiziert, um einen Kontextparameter zu übernehmen:

jQuery.fn.add = function( selector, context ) {
    return this.pushStack( jQuery.unique( jQuery.merge(
        this.get(),
        typeof selector == 'string' ?
            jQuery( selector, context ) :
            jQuery.makeArray( selector )
    )));
}
Beantwortet am 09/12/2008 um 21:53
quelle vom benutzer

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