Ray S.
Ray S.

Reputation: 1200

Jquery selector to get all select dropdowns with ID pattern

What is the simplest way to iterate through all select drop downs with ID's matching a pattern using jquery. for example:

<select id="begin_1_end">...</select>

<select id="begin_32_end">...</select>

<select id="begin_42_end">...</select>

<select id="dontgetme_2_end">...</select>

<select id="begin_12_dontgetme">...</select>

to iterate through the first 3 selects only.

Upvotes: 9

Views: 29025

Answers (3)

Anton
Anton

Reputation: 32581

Try this with attribute-starts-with-selector/

$('select[id^="begin"]').each(function () {
    console.log(this.id);
});

or you could use attribute-ends-with-selector

$('select[id$="end"]').each(function () {
    console.log(this.id);
});

Update

To select the first 3 you can use :lt(3) like this

$('select[id^="begin"]:lt(3)').each(function () {
    console.log(this.id);
});

DEMO

Update

To combine the selectors you can do this

$('select[id^="begin"][id$="end"]').each(function () {
    console.log(this.id);
});

DEMO

If you want to select an element with id that starts with begin OR end you can do this using , to get two different selectors

$('select[id^="begin"],select[id$="end"]').each(function () {
    //                ^
    console.log(this.id);
});

DEMO

Upvotes: 32

Arun P Johny
Arun P Johny

Reputation: 388316

use attribute starts with selector, then use .each() to iterate through them

$('select[id^=begin_]').each(function(){...})

Upvotes: 3

Murali Murugesan
Murali Murugesan

Reputation: 22619

Try using attribute starts with selector

  $("select[id^='begin_'").each(function(){
  //your stuff
  })

Upvotes: 1

Related Questions