Ответы:
Второй аргумент ( ".demo"в вашем примере) - это контекст , в основном ваш селектор ограничен соответствием только потомкам определенного контекста :
$(expr, context)
Это просто эквивалент использования findметода:
$(context).find(expr)
Взгляните на документацию функции jQuery :
Селектор Контекст
По умолчанию селекторы выполняют поиск в DOM, начиная с корня документа. Однако для поиска можно задать альтернативный контекст, используя необязательный второй параметр
$()функции. Например, если в функции обратного вызова мы хотим выполнить поиск элемента, мы можем ограничить этот поиск:
$('div.foo').click(function() {
$('span', this).addClass('bar');
// it will find span elements that are
// descendants of the clicked element (this)
});
Также обратите внимание, что публикуемый вами селектор "button, input:submit, a"называется Множественный селектор , и там вы можете указать любое количество селекторов для объединения в один результат, просто разделив их запятой.