使用jQuery在'select'上进行简单模式搜索

时间:2010-12-22 16:10:03

标签: jquery

我需要通过单一选择在选择框中进行简单搜索。 主要思想是选择匹配简单模式的第一个选项元素。

简单模式:它可以包含*?个占位符,这意味着任何符号。

如何使用jQuery创建此脚本? 使用Regexp?

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果使用this little snippet扩展jQuery:

jQuery.expr[':'].regex = function(elem, index, match) {
    var matchParams = match[3].split(','),
        validLabels = /^(data|css):/,
        attr = {
            method: matchParams[0].match(validLabels) ? 
                        matchParams[0].split(':')[0] : 'attr',
            property: matchParams.shift().replace(validLabels,'')
        },
        regexFlags = 'ig',
        regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
    return regex.test(jQuery(elem)[attr.method](attr.property));
}

..你可以使用这样的选择器:

# to match child elements of #container which have their
# value attribute in the form of /.*names?/
$("#container option:regex(value, .*names?)")