jquery: find element whose id has a particular pattern
Asked Answered
H

3

61

I am trying to find a span element who has an id in a particular pattern. Its main use is to find certain elements rendered by an asp.net (aspx) page which is derived from a master page.

Holyhead answered 28/9, 2009 at 15:46 Comment(0)
C
38
$('span').each(function(){
   if( $(this).attr('id').match(/pattern/) ) {
        // your code goes here
   }
});

problem solved.

Cerebrovascular answered 28/9, 2009 at 15:50 Comment(0)
J
177

Building on the accepted answer:

It depends on what kind of pattern you're looking for. If your pattern is something like "MasterPageElement_CheckBox_4443", "MasterPageElement_CheckBox_4448", etc. then you could also use:

$("span[id^=MasterPageElement_CheckBox]")

There are 3 built-in attribute selectors for simple patterns:

$("span[id^=foo]")

That selector matches all spans that have an id attribute and it starts with foo (e.g. fooblah)

$("span[id$=foo]")

That selector matches all spans that have an id attribute and it ends with foo (e.g. blahfoo).

$("span[id*=foo]")

That selector matches all spans that have an id attribute and it has foo somewhere within in it (e.g. blahfooblah).

John answered 28/9, 2009 at 16:5 Comment(1)
Links: *= pattern, $= pattern and ^= patternBrunhilde
C
38
$('span').each(function(){
   if( $(this).attr('id').match(/pattern/) ) {
        // your code goes here
   }
});

problem solved.

Cerebrovascular answered 28/9, 2009 at 15:50 Comment(0)
G
8

I know this is an old post, but additional information can help future developers who stumble across this. :) To add on to what @cdmckay mentioned, you can combine the attribute selectors to achieve "begins with X and ends with Y".

$("input[id^=inp][id$=_AddItem]")

This will match id "inp1_AddItem", "inp2_AddItem", "inp3_AddItem", etc.

Gangland answered 3/6, 2020 at 15:18 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.