Согласно документу jQuery контекст должен быть «элементом DOM, документом или jQuery». Сам по себе он не может быть селектором строк.
Итак, когда вы укажете это:
$('textarea, input, select', '.highlightRow')
вы, очевидно, пытаетесь указать контекст '.highlightRow'
, который не является одним из документированных способов указания контекста. В этом конкретном случае вы можете либо получить один элемент DOM для '.highlightRow'
, превратить его в объект jQuery или поместить в фактический селектор.
Но контекст будет работать ТОЛЬКО если объект, который вы передаете, действительно существует. Если он не существует, то вы как бы пропускаете NULL-контекст, который означает поиск по всему документу, чтобы он не делал то, что вы хотите. Таким образом, вы можете использовать контекстный параметр в селекторе, только когда он действительно существует.
Я бы предложил использовать это:
$('.highlightRow textarea, .highlightRow input, .highlightRow select')
Рабочая демонстрация здесь: http://jsfiddle.net/jfriend00/uzYuQ/.