Multiple Parameters for jQuery selector?

Jquery

Jquery Problem Overview


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?

Jquery Solutions


Solution 1 - Jquery

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.

Solution 2 - Jquery

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!");
});

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionchobo2View Question on Stackoverflow
Solution 1 - JqueryChristian C. SalvadóView Answer on Stackoverflow
Solution 2 - JqueryhanshenrikView Answer on Stackoverflow