Case Insensitive :contains

A custom case-insensitive approach to :contains pseudo selector.

by ritcheyer

HTML

<div>
    <p>John</p>
    <p>jOHN</p>
    <p>JoHn</p>
    <p>jOHNathan</p>
    <p>DearJohn</p>
    <p>jOHN</p>
    <p>John</p>
    <p>jOHN</p>
    <p>John</p>
    <p>jOHN</p>
    <p>peter</p>
</div>

CSS

.selected { color: #f00; }

JavaScript

$.extend($.expr[":"], {
    "containsIN": function(elem, i, match, array) {
        return (elem.textContent || elem.innerText || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
    }
});


$('p:containsIN("john")').addClass("selected");