Attribute selectors vs hasAttribute

Benchmark created by Roan Kattouw on


Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<div id="test">
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
<a href="foo">Hello</a>
<a>World</a>
</div>

Setup

$container = $('#test');

Test runner

Ready to run.

Testing in
TestOps/sec
attribute selector
$container.find('a[href]').addBack('a[href]').each( function () { $(this).attr('href','bar'); } );
ready
without selector
$container.find('a').addBack('a').each( function () { if (this.hasAttribute('href')) { $(this).attr('href', 'bar'); } } );
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by Roan Kattouw on