jQuery Parent() vs Closest() (v8)

Revision 8 of this benchmark created by Chris Moschini on


Description

Test .closest() vs .parent() performance.

Preparation HTML

<ul id="filtration">
    <li class="first">Urval</li>
    <li>
        <div class="selectContainer filtration">
            <select id="filterType" class="filtration" multiple="multiple" size="1" autocomplete="off" style="visibility: hidden; ">
                <option value="">Typ</option>
                <option value="Klänningar">Klänningar</option>
                <option value="Byxor" selected="selected">Byxor</option>
                <option value="Toppar">Toppar</option>
            </select>
            <a class="dropdown ischanged"><span class="toggle"></span><span>Byxor</span></a><ul class="DD_values bullets" style="display: none; "><li><a href="#" data-val="Klänningar"><span>Klänningar</span></a></li><li><a href="#" data-val="Byxor" class="selected"><span>Byxor</span></a></li><li><a href="#" data-val="Toppar"><span>Toppar</span></a></li></ul></div>
    </li>
    <li>
        <div class="selectContainer filtration">
            <select id="filterColor" class="filtration" multiple="multiple" autocomplete="off" style="visibility: hidden; ">
                <option value="">Färg</option>
                <option value="red">Röd</option>
                <option value="green">Grön</option>
                <option value="blue">Blå</option>
            </select>
            <a class="dropdown"><span class="toggle"></span><span>Färg</span></a><ul class="DD_values bullets" style="display: none; "><li><a href="#" data-val="red"><span>Röd</span></a></li><li><a href="#" data-val="green"><span>Grön</span></a></li><li><a href="#" data-val="blue"><span>Blå</span></a></li></ul></div>
    </li>
    <li>
        <div class="selectContainer filtration">
            <select id="filterSize" class="filtration" autocomplete="off" style="visibility: hidden; ">
                <option value="">Storlek</option>
                <option value="XS">XS</option>
                <option value="S">S</option>
                <option value="M">M</option>
                <option value="L">L</option>
                <option value="XL">XL</option>
            </select>
            <a class="dropdown"><span class="toggle"></span><span>Storlek</span></a><ul class="DD_values bullets" style="display: none; "><li><a href="#" data-val="XS"><span>XS</span></a></li><li><a href="#" data-val="S"><span>S</span></a></li><li><a href="#" data-val="M"><span>M</span></a></li><li><a href="#" data-val="L"><span>L</span></a></li><li><a href="#" data-val="XL"><span>XL</span></a></li></ul></div>
    </li>
    <li class="sort">Sortering</li>
    <li>
        <div class="selectContainer filtration">
            <select id="sortBy" class="filtration" autocomplete="off" style="visibility: hidden; ">
                <option value="senast" selected="selected">Senast inkommet</option>
                <option value="stigande">Stigande pris</option>
                <option value="fallande">Fallande pris</option>
            </select>
            <a class="dropdown ischanged"><span class="toggle"></span><span>Senast inkommet</span></a><ul class="DD_values bullets" style="display: none; "><li><a href="#" data-val="senast" class="selected"><span>Senast inkommet</span></a></li><li><a href="#" data-val="stigande"><span>Stigande pris</span></a></li><li><a href="#" data-val="fallande"><span>Fallande pris</span></a></li></ul></div>
    </li>
    <li class="last"><a href="" class="clear_filt"><span>Visa</span></a>(50)</li>
</ul>

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

Setup

// Get the filterType select tag to use a tag far enough into the DOM.
    var tagStart = $('#filterType');

Test runner

Ready to run.

Testing in
TestOps/sec
.parent().parent()
var ul = tagStart.parent().parent();
ready
.closest('#filtration')
var ul = tagStart.closest('#filtration');
ready

Revisions

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