jQuery find() vs find().filter() with attribute selector (v5)

Revision 5 of this benchmark created on


Description

What's the difference in performance between:

$("div[data-num='300']");

and

$("div").filter("[data-num='300']");

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

<script>

var fragment = document.createDocumentFragment(),
    i = 500;

while (i--) {
    fragment.appendChild($('<div/>').text(i));
}

$(document).append(fragment);
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
$("div[data-num='300']")
$("div[data-num='300']");
ready
$("div").filter("[data-num='300']")
$("div").filter("[data-num='300']");
ready
with var
var $tmp = $("div");
$tmp.filter("[data-num='300']");
ready
$find()
$.find("div[data-num='300']");
ready
[data-num='300']
$("[data-num='300']");
ready
find([data-num='300'])
$.find("[data-num='300']");
ready
find().filter()
$("#div").find("*").filter("[data-num='300']");
ready

Revisions

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