0

我从CSSTricks.com 上这篇文章的评论中获取了以下片段。

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

本质上,它提供了一个伪选择器:containsNC,它的工作原理与此类似:contains,但不区分大小写。

我希望能够检测此选择器是否可用,以便有条件地:contains用作后备。

如何检查这种自定义选择器的存在?

或者,是否有更好的方法在较新的 jQuery 中进行不区分大小写的匹配?

作为参考,这是我目前使用的方式:contains过滤 Facebook 好友列表

$('#friend-search').on('keyup', 'input', function() {
    var $search = $(this).val(),
        $friends = $('.friend'),
        match = ':contains(' + $search + ')';
    $friends.hide().filter(match).show();
});
4

1 回答 1

1

发布这个问题后,我做了一些探索,很容易找到答案:

var containsNC_isDefined = typeof $.expr[":"].containsNC === "function";
if (containsNC_isDefined) alert(":containsNC exists!"); 
于 2013-08-13T19:42:04.023 回答