2011-12-13 18 views
7

io non sono sicuro se "concatenate" è il termine corretto per questo, ma qualcosa di simile:Selettore di concatenazione in jQuery?

$("#a").$("#b").$("#c").$("#d").click(); // click on all of them 

Fondamentalmente ho una lunga lista di cose ma non posso applicare una classe a loro.

+2

Il codice di esempio è sostanzialmente dicendo "trovare l'elemento #A, quindi cercare un elemento #b all'interno #A, quindi cercare un #c all'interno #b, e un #d all'interno #c". Phrogz ha la soluzione qui sotto. –

risposta

16

Come in CSS, è possibile utilizzare una virgola per separare multiple selectors:

$("#a, #b, #c, #d").click(); 

Si noti che questi non devono essere lo stesso tipo di selettore. Per esempio:

// Click the menu, all spans in all .foo, and paragraphs after headers 
$("#menu, div.foo span, h1 + p").click(); 

Inoltre, se già avete gli oggetti jQuery, è possibile add() i set in questo modo:

var a = $('#a'), b = $('#b'), c = $('#c'); 
var all = a.add(b).add(c); 
+0

Ho usato la tua soluzione .add.add perché trovo che la stringa non sia elegante. Grazie! – Bill

4
$("#a, #b, #c, #d").click(); 

Si chiama :-D

1

fare una virgola

$("#a,#b,#c,#d").click() 
+0

@Phrogz: Sì. Era un errore di fretta. L'ho appena corretto. – Shyju

2

È possibile concatenare i selettori utilizzando il separatore di virgola (,). Prova questo.

$("#a,#b,#c,#d").click();