jQuery does not have a built-in selector to compare the values of attributes, but it allows you to write custom filters (analogous to plugins). I once found documentation on this but can't anymore. You sort of have to read the source to learn to do this. You just extend the $.expr[':'] object with your new filter set to a string that is evaluated, where 'a' is the element being tested and 'm[3]' is the argument to the filter:
$.expr[':'].levelGreaterThan = '$.attr(a,"level")>m[3]' ; Now you can use this anywhere: $('qualif:levelGreaterThan(3)').remove(); Far more bizarre but potentially useful would be a custom filter that tests any attribute: $.expr[':'].attr = 'eval(m[3].replace(/^(\\w+)/,"$.attr(a,\\"$1\ \")"))'; and now write: $('.qualif:attr(level>3)').remove(); Unfortunately the parser for [attr....] is not extensible, so you can't create a [level>3] selector directly Danny On Jan 30, 12:22 pm, Feijó <[EMAIL PROTECTED]> wrote: > Hi Cabbite > > Thanks for your 0.02 > > Its possible to simple use like this? > $('.qualif[level>3]').remove(); > > if level bigger then 3, remove it :) > > My code is dynamic, I cant just wrote all numbers I dont need to remove, > like your example. Has to use a condition. > > Feijó > > cabbiepete escreveu: > > > Hi Felix, > > > I would have thought doing an attribute selector like you suggest was > > better. > > > something like > > > ... $('.qualif[level]).each .... ... > > > to at least get rid of anything that doesn't have the level > > attribute. Also if you use the same tag name for all of these > > attributes its worth adding that as it also helps with efficiency, > > i.e. jquery only has to check those tags for level attribute. > > > Depending on the exact use of the level attribute you might be able > > to get just the ones you want by using [attribute!=value] selectors. > > i.e. if you want greater than 4 and start at 0 > > > $('.qualif[level!=0], .qualif[level!=1], .qualif[level! =2], > > .qualif[level!=3], qualif[level!=4]').remove(); > > > Hope that helps. Also if any more expert on jquery knows more am keen > > to know better also. > > > Cheers, Pete > > > On Jan 30, 12:56 pm, Feijó <[EMAIL PROTECTED]> wrote: > > > Hi, I was just wondering if there is any better way to accomplish > > > that. Some divs has 'level' attribute, with a number. If that > > > number is bigger than X, will remove the div. var x=4; // > > > simulating level=parseFloat($this.attr('level')); > > > $('.qualif').each(function() { if ($(this).attr('level')>x) > > > $(this).remove(); }); I don't know if we can set a filter in $('') > > > to look at a custom attribute, should be simpler than Feijó