Side navigation
#14109 closed bug (notabug)
Opened July 06, 2013 09:11PM UTC
Closed July 07, 2013 05:05PM UTC
Selector ":not" does not behave same for selection by .class and by element names (tagName)
| Reported by: | jan.misek@rclick.cz | Owned by: | |
|---|---|---|---|
| Priority: | undecided | Milestone: | None |
| Component: | unfiled | Version: | 1.10.2 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
Reproduction:
JSFiddle:
<div class="sandbox">
<div class="test" >
<div class="test" >
<div class="test" >
<div class="test">
</div>
</div>
</div>
</div>
</div>
<div class="result">
Result of following js code goes here. Result should be "1 1" but it is "1 0"
</div>
<script>
var result1 = ($('.sandbox').find('.test:not(.test .test)').length);
var result2 = ($('.sandbox').find('div:not(div div)').length);
$('div.result').html(result1 + ' ' + result2)
</script>
Attachments (0)
Change History (1)
Changed July 07, 2013 05:05PM UTC by comment:1
| resolution: | → notabug |
|---|---|
| status: | new → closed |
Much like the recent #14043 (which tripped me up as well, at first glance), this is not a bug. The expressions are interpreted as follows:
$('.sandbox').find('.test:not(.test .test)'): descendants (of elements with class "sandbox") that have class "test" and are not descended from other elements with class "test" (equivalent to$('.sandbox').find('.test:not(.test *)'); matches the first sandbox child)$('.sandbox').find('div:not(div div)'):divdescendants (of elements with class "sandbox") that are not descended from otherdivs (equivalent to$('.sandbox').find('div:not(div *)'); matches nothing since the sandbox is itself adiv)