Just to make that selector look a little friendlier, the '@' has been deprecated, and you can skip the extra "" if you're not using special characters:
$('input[id^=foo][id$=bar]') - ricardo On Dec 14, 5:17 am, Daniel L <dan...@cleardocs.com> wrote: > CSS 3 selectors seem to be my solution: > > $('inp...@id^="foo"]...@id$="bar"]').change(function(){ > alert(this.id); > > } > > This will be attached to all input fields that have an ID starting > with 'foo' and ending with 'bar' (e.g. 'foo123bar', 'foobar', > 'foo456bar'). > > Then within the function I can pass through the actual ID with > 'this.id'. > > Cheers. > > On Dec 14, 1:44 pm, "Dan Switzer" <dswit...@pengoworks.com> wrote: > > > The easiest way to do this would be to give each div a specific class: > > > <div id="mydiv1" class="foo" /> > > <div id="mydiv2" class="foo" /> > > <div id="mydiv3" class="foo" /> > > <div id="mydiv4" class="foo" /> > > > Now you could just do: > > > $("div.foo").change(); > > > I like this method, since usually this divs have related visuals, so > > you may already have a constant class defined for the elements. > > > An alternative would be to do something like: > > > $("div[id^=mydiv]").change(); > > > This would find all divs with an ID that starts "mydiv". The > > performance on the class method may be more efficient though. > > > -Dan > > > On Sat, Dec 13, 2008 at 8:30 PM, Daniel L <dan...@cleardocs.com> wrote: > > > > Hi, I have a situation where the same javascript is repeated about 50 > > > times - just with a differnt ID. Example: > > > > $('#mydiv1').change(function() { > > > doStuff('#mydiv1'); > > > }); > > > $('#mydiv2').change(function() { > > > doStuff('#mydiv2'); > > > }); > > > ... > > > $('#mydiv50').change(function() { > > > doStuff('#mydiv50'); > > > }); > > > > Is there a way to combine all these calls using wildcards?? I imagine > > > it would be something like: > > > > $('#mydiv<* as foo>').change(function() { > > > doStuff('#mydiv<foo>'); > > > }); > > > > Any help would be greatly appreciated.