Every framework runs in his own iFrame, thus no conflicts can happen. Tests are run selector by selector, with an interval to prevent the browser from freeezing.
Tests are run in a neutral environment, no library or framework is included in the main javascript test, to avoid favoritism.
Tests are run against a local copy of this document.
selectors | DOMAssistant 2.8 | jQuery 1.4.2 | Prototype 1.6.1 | Mootools 1.2.4 | ExtJS Core 3.1 | Dojo 1.4.1 | YUI 2.8.0 | YUI 3.0.0 |
---|---|---|---|---|---|---|---|---|
body | ||||||||
div | ||||||||
body div | ||||||||
div p | ||||||||
div > p | ||||||||
div + p | ||||||||
div ~ p | ||||||||
div[class^=exa][class$=mple] | ||||||||
div p a | ||||||||
div, p, a | ||||||||
.note | ||||||||
div.example | ||||||||
ul .tocline2 | ||||||||
div.example, div.note | ||||||||
#title | ||||||||
h1#title | ||||||||
div #title | ||||||||
ul.toc li.tocline2 | ||||||||
ul.toc > li.tocline2 | ||||||||
h1#title + div > p | ||||||||
h1[id]:contains(Selectors) | ||||||||
a[href][lang][class] | ||||||||
div[class] | ||||||||
div[class=example] | ||||||||
div[class^=exa] | ||||||||
div[class$=mple] | ||||||||
div[class*=e] | ||||||||
div[class|=dialog] | ||||||||
div[class!=made_up] | ||||||||
div[class~=example] | ||||||||
div:not(.example) | ||||||||
p:contains(selectors) | ||||||||
p:nth-child(even) | ||||||||
p:nth-child(2n) | ||||||||
p:nth-child(odd) | ||||||||
p:nth-child(2n+1) | ||||||||
p:nth-child(n) | ||||||||
p:only-child | ||||||||
p:last-child | ||||||||
p:first-child | ||||||||
final time (less is better) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
the faster | the slower | exception thrown or zero elements found | different returned elements |
---|---|---|---|