jquery psudo

Benchmark created on


Preparation HTML

<pre>
<html>
    <head>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    </head>
    <body>
    <form action="" method="post">
        <h1 data-parentId="1" ><input name="data[1][key]" id="data[1]" value="Global"></h1>
        <ul>
            <li data-childId="1" ><input name="data[1][1][key]" id="data[1][1]" value="cleanTitle"> : <input name="data[1][1][value]" id="data[1][1]" value="Project CSS"></li>
            <li data-childId="2" ><input name="data[1][2][key]" id="data[1][2]" value="FirstName"> : <input name="data[1][2][value]" id="data[1][2]" value="Stephen"></li>
            <li data-childId="3" ><input name="data[1][3][key]" id="data[1][3]" value="LastName"> : <input name="data[1][3][value]" id="data[1][3]" value="Gobin"></li>
    </ul>
        <h1 data-parentId="2" ><input name="data[2][key]" id="data[2]" value="Home"></h1>
        <ul>
            <li data-childId="1" ><input name="data[2][1][key]" id="data[2][1]" value="cleanTitle"> : <input name="data[2][1][value]" id="data[2][1]" value="Project CSS"></li>
            <li data-childId="2" ><input name="data[2][2][key]" id="data[2][2]" value="Company"> : <input name="data[2][2][value]" id="data[2][2]" value="Fiddlefly"></li>
            <li data-childId="3" ><input name="data[2][3][key]" id="data[2][3]" value="test"> : <input name="data[2][3][value]" id="data[2][3]" value="tester"></li>
    </ul>
            <input type="submit" name="submit" id="submit" value="submit">
    </form>
    </body>
</html>

Setup

window.selectOne = function(selector) {
            return document.querySelector(selector);
        };
    
        window.selectMany = function(selector) {
            var items = {},
                results = [],
                length = 0,
                i = 0;
    
            // this doesn't work on IE 8- and Blackberry Browser
            results = Array.prototype.slice.call(document.querySelectorAll(selector));
    
            length = results.length;
    
            // add the results to the items object
            for ( ; i < length; ) {
                items[i] = results[i];
                i++;
            }
    
            // add some additional properties to this items object to
            // make it look like an array
            items.length = length;
            items.splice = [].splice();
    
            // add an 'each' method to the items
            items.each = function(callback) {
                var i = 0;
                for ( ; i < length; ) {
                    callback.call(items[i]);
                    i++;
                }
            }
    
            return items;
        };

Test runner

Ready to run.

Testing in
TestOps/sec
van
selectMany('h1')[selectMany('h1').length - 1]
ready
jquery
$('h1:last')
ready

Revisions

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