jQuery :contains VS .filter (v2)

Revision 2 of this benchmark created by supsup on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<ul id="list">
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
    <li><a href="#">text</a></li>
</ul>

Setup

var $A     = $('#list').find('a'),
      filter = "ext";

Test runner

Ready to run.

Testing in
TestOps/sec
regex
var testexp = new RegExp(filter);	
var no = $A.filter(function () {        	
        return testexp.test($(this).text()) == false;
}),

yes = $A.filter(function () {
		
		console.log(testexp.test($(this).text()));
        return testexp.test($(this).text()) == true;
});
ready
.filter
var no = $A.filter(function () {
        return ($(this).text().indexOf(filter) === -1)
    }),
    yes = $A.filter(function () {
        return ($(this).text().indexOf(filter) > -1)
    });
 
ready

Revisions

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