jquery选择器上的多个条件

时间:2011-10-13 16:46:35

标签: jquery jquery-selectors

我有以下jquery片段,可以过滤任何具有正则表达式中提到的特定扩展名的链接。对于这种情况,我想检查href值是否以http://www.xyz.com开头。怎么办?

$('a:regex(href,\\.(zip|mp\\d+|mpe*g|pdf|docx*|pptx*|xlsx*|jpe*g|png|gif|tiff*))$').live('click', function (e) {
    // do some action..
});

正则表达式帮助函数位于

之下
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));
}

1 个答案:

答案 0 :(得分:2)

在我看来,正则表达式中存在错误($的位置)。但是这里是你如何链接选择器:

$('a[href^=http://www.xyz.com]:regex(href,\\.(zip|mp\\d+|mpe*g|pdf|docx*|pptx*|xlsx*|jpe*g|png|gif|tiff*)$)').live('click', function (e) {
    // do some action..
});