Shouldn't it simply be $(':not(div):has(div)') ?
Note that it gives you all the chain of parents to the element which contains a DIV. On Jan 16, 6:26 pm, jdwbell <jdwb...@gmail.com> wrote: > Thank you very much for your reply. I am finding that with the > example listed below these two work as expected (that is they are > returning non divs and all divs which do not contain other divs): > > $('*').not('div:has(div)') > $('*').not($('div:has(div)')) > > but these three: > > $(':not(div:has(div))') > $('*:not(div:has(div))' > $('*').filter(':not(div:has(div))') > > are excluding ALL divs as all other elements which contain divs > > Hopefully that explanation makes because I'm kind of confusing > myself! I've tried this on IE 6 and Chrome with the same results. > > Thanks! > > <html> > <head> > <style> > div, fieldset, p { > border: ridge 1px silver; > padding: 20px; > margin: 20px; > } > .wrappedElement { > border: ridge 2px #FF0000; > } > </style> > <script type="text/javascript" > src="../../scripts/jquery-1.3.js"></script> > <script> > $(function(){ > $(':not(div:has(div))').addClass('wrappedElement'); > //$('*:not(div:has(div))').addClass('wrappedElement'); > //$('*').filter(':not(div:has(div))').addClass('wrappedElement'); > //$('*').not('div:has(div)').addClass('wrappedElement'); > //$('*').not($('div:has(div)')).addClass('wrappedElement'); > }) > </script> > </head> > <body> > <div> > <div> > <div> > <p>paragraph surrounded by three divs</p> > </div> > </div> > </div> > <fieldset> > <div> > div surrounded by fieldset > </div> > </fieldset> > </body> > </html> > > On Jan 16, 1:50 pm, John Resig <jere...@gmail.com> wrote: > > > $(':not(div:has(div))') is equivalent to > > $('*:not(div:has(div))') is equivalent to > > $('*').filter(':not(div:has(div))') is equivalent to > > $('*').not('div:has(div)') > > > Hope that helps to answer your question :) > > > --John > > > On Fri, Jan 16, 2009 at 11:24 AM, jdwbell <jdwb...@gmail.com> wrote: > > > > Here I am trying to get every element which is not a div that contains > > > another div. > > > > Is $(':not(div:has(div))') supposed to now be equivalent to $('*').not > > > ($('div:has(div)')) or am I misunderstanding what the change was (I'm > > > just getting started with jQuery)? > > > > Thanks!