Risposte:
Il secondo argomento ( ".demo"nel tuo esempio) è il contesto , fondamentalmente il tuo selettore è limitato per abbinare solo i discendenti di un determinato contesto :
$(expr, context)
È solo equivalente a utilizzare il findmetodo:
$(context).find(expr)
Dai uno sguardo alla documentazione della funzione jQuery :
Contesto del selettore
Per impostazione predefinita, i selettori eseguono le loro ricerche all'interno del DOM a partire dalla radice del documento. Tuttavia, è possibile fornire un contesto alternativo per la ricerca utilizzando il secondo parametro facoltativo della
$()funzione. Ad esempio, se all'interno di una funzione di callback desideriamo fare una ricerca per un elemento, possiamo restringere quella ricerca:
$('div.foo').click(function() {
$('span', this).addClass('bar');
// it will find span elements that are
// descendants of the clicked element (this)
});
Nota anche che il selettore che pubblichi "button, input:submit, a", si chiama Selettore multiplo , e lì puoi specificare qualsiasi numero di selettori da combinare in un singolo risultato, semplicemente separandoli con una virgola.