$ .expr [':']在javascript中意味着什么

时间:2014-07-28 16:35:28

标签: javascript jquery

我正在查看bootstrap-select plugin源代码,我看到了这一行:

$.expr[':'].icontains = function(obj, index, meta) {
    return $(obj).text().toUpperCase().indexOf(meta[3].toUpperCase()) >= 0;
};

我很好奇$.expr[':']在这里的含义是什么?

1 个答案:

答案 0 :(得分:3)

这是jQuery创建自定义表达式的方式

$.expr[':'].icontains = function(obj, index, meta) {
    return $(obj).text().toUpperCase().indexOf(meta[3].toUpperCase()) >= 0;
};

可以用作

$('.elements:icontains(text)')

这是:contains

的不区分大小写的版本

换句话说,您可以使用$.expr[':']创建所需的任何伪选择器,让我们尝试另一个

$.expr[':'].christmas = function(obj, index, meta) {
    return $(obj).text().toLowerCase().indexOf('christmas') !== -1
}

$('.elements:christmas').addClass('xmas');

这只会选择包含christmas

的元素

FIDDLE