Jquery selector to get all select dropdowns with I

2019-02-16 18:08发布

问题:

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.

回答1:

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



回答2:

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

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


回答3:

Try using attribute starts with selector

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