Multiple Parameters for jQuery selector?

I was just looking at the jQueryUI button plug-in and noticed this

$("button, input:submit, a", ".demo").button();

I never seen something like this. Is this like multiple selects in one jQuery selector?

52260 次浏览

The second argument (".demo" in your example) is the context, basically your selector is restricted to match only descendants of a determined context:

$(expr, context)

Is just equivalent to use the find method:

$(context).find(expr)

Give a look to the documentation of the jQuery function:

Selector Context

By default, selectors perform their searches within the DOM starting at the document root. However, an alternate context can be given for the search by using the optional second parameter to the $() function. For example, if within a callback function we wish to do a search for an element, we can restrict that search:

$('div.foo').click(function() {
$('span', this).addClass('bar');
// it will find span elements that are
// descendants of the clicked element (this)
});

Also notice that the selector you post "button, input:submit, a", is called Multiple Selector, and there you can specify any number of selectors to combine into a single result, just by separating them by a comma.

to actually supply multiple different arguments to a jQuery selector though, just give the selector an array with all your arugments, like

$([sel1, sel2, sel3, obj1, obj2, obj3]).on("click", function() {
alert("clicked!");
});