jQuery prop('checked') vs. is(':checked')

JavaScript performance comparison

Revision 30 of this test case created by Slider_123

Info

A quick test to see if prop('checked') or is(':checked') is faster with jQuery.

Preparation code

<script src="//code.jquery.com/jquery-2.1.0.min.js"></script>

<input type="radio" value="y" name="my-test-radiobutton" id="my-test-radiobutton" checked>
<script>
  var $el = $('#my-test-radiobutton');
  var $rd = document.getElementById("my-test-radiobutton");
</script>

Preparation code output

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
$jQ.prop()
$el.prop('checked');
pending…
$jQ.is()
$el.is(':checked');
pending…
$jQ.attr()
$el.attr('checked');
pending…
jDom[0].checked
$el[0].checked;
pending…
jDom.get(0).checked
$el.get(0).checked;
pending…
DOM.checked
$rd.checked;
pending…
DOM.getAttribute()
$rd.getAttribute('checked');
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

1 comment

Slider_123 (revision owner) commented :

I supposed, that jQ.attr() is faster then jQ.is(). Because when you do jq.is(), you: first, find jQuery element; second, find all checked elements on the page and make jQuery collection; third, compare first element with collection. But it seems that: * jQ.attr() is based on DOM.getAttribute() that is not optimized in DOM. * jQ.is() is probably based on highly optimized DOM.checked. So the gap between jQ.attr() vs jQ.is() could be much bigger than it is. But jQ.is() has its long way to compare the existens of checked element. And it's practically kills the advantage of DOM.checked.

Add a comment