I’m using following line and I would like to make it case-insensitive:
var matches = $(this).find('div > span > div#id_to_find[attributeName ^= "filter"]');
if (matches.length > 0) {
}
My question is that how can I make the selector ^= to be case-insensitive? Maybe changing to filter and then some regexp?
To do a case-insensitive attribute selection, you need to write a custom selector function.
You can use this like this:
This will match any
inputelements whosetypeattribute begins withRorr(so it would matchRADIO,radio,RESETorreset). This is a pretty silly example, but it should do what you need.Re the comment that the function is hard to understand, I’ll explain it a little.
This is the standard signature for creating custom selectors.
metais an array of details about the call.meta[3]is the string passed as the parameter. In my example, this istype, r. The regex matchestypeandrseparately.Return if both these are true:
opts[1] in obj)I could have made this easier to read using jQuery syntax rather than native JS syntax, but that would have meant reduced performance.