Assuming that the level starts at 0, I think you could apply successive not filters to the Jquery selection, the first eliminating level=0, the second eliminiating level=1, etc...
On Jan 31, 3:46 am, Danny <[EMAIL PROTECTED]> wrote: > 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ó