2013-01-31 10 views
24

Ermöglicht die Methode .add() die Auswahl mehrerer Objekte auf einmal, anstatt jeweils eines hinzuzufügen?Mehrere jQuery-Objekte mit .add() auswählen

one.add(two).add(three).add(four).on("click", function() { }); 

Die folgenden Variablen werden in der Art, wie sie tun, festgelegt, da die jeweils eine andere Funktion ausführt.

var one = $("#1"); 
var two = $("#2"); 
var three = $("#3"); 
var four = $("#4"); 

Aber was, wenn ich eine zusätzliche Funktion hinzufügen möchte, die für alle diese Elemente gilt? Muss ich sie einzeln hinzufügen?

Ich weiß, dass Sie alle mit $("#1,#2,#3,#4") auswählen können, aber ich möchte nur die oben genannten Variablen verwenden.

+2

BTW: Eine Nummer als erstes Zeichen zur ID-Deklaration ist nie eine gute Idee ... ;-) – yckart

+2

@yckart Sie werden nie so benannt. Dies dient nur der Veranschaulichung. – Antony

+1

Ja, ich weiß: - * – yckart

Antwort

27

ich dieses Array Ansatz bevorzugen würden, rein aus Gründen der Lesbarkeit ...

$([one, two, three, four]).each(function() { 
    // your function here 
}); 
4

Sie sie wie Sie können mehrere Objekte in einem Rutsch nicht fügen Sie diese

var k = [one,two,three,four] 

$.each(k,function(){ 
    $(this).click(function(){ 
    //Function here 
    }); 
}); 
+7

Oder tun Sie das einfach: '$ (k) .click (function() {...})' –

9

in ein Array setzen könnte, zum Beispiel:

var groupThree = one.add(three, five); // will not work as expected 

Sie könnten die hinzugefügten Objekte zwischenspeichern, so dass Sie nur tun müssen, um das einmal hinzufügen - http://jsfiddle.net/X5432/

var one = $("#1"); 
var two = $("#2"); 
var three = $("#3"); 
var four = $("#4"); 
var five = $("#5"); 

var groupOne = one.add(two).add(three).add(four); 
var groupTwo = groupOne.add(five); 

$('#first').click(function(e){ 
    e.preventDefault(); 
    groupOne.css({'background': '#00FF00'}); 
}); 

$('#second').click(function(e){ 
    e.preventDefault(); 
    groupTwo.css({'background': '#FF0000'}); 
}); 

Aber ich das Array-Verfahren besser gefällt, das ist nur eine andere Art und Weise darüber nachzudenken.

+2

Das ist nett, Sie könnten noch mehr Nutzen aus dem Ansatz bekommen, indem Sie es wie folgt verwenden: 'groupOne.click (function (e) {}); ' – Werner

Verwandte Themen