jQuery предоставляет некоторые приятные возможности расширения. Вот общий фильтр для выбора по нескольким именам тегов :
/*
* element: the current element being matched
* index: index of the current element
* match: parse tokens from the filter string
*
* match[0] -> full filter string
* match[1] -> filter name
* match[2] -> ""
* match[3] -> filter parameter
*/
jQuery.expr[':'].tags = function(element, index, match) {
var inputs = match[3].split(',');
var nodeName = element.nodeName.toLowerCase();
return $.inArray(nodeName, inputs) !== -1;
};
Он имеет снижение производительности в том, что функция обратного вызова будет вызываться для каждого элемента, соответствующего точке фильтра, поэтому я бы не рекомендовал это для очень больших документов.
$("#test > fieldset > :tags(input,select)").hide();