jquery 选择器上的多个条件
我有下面的 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));
}
I have the below jquery snippet which filters for any links which has a specific extension mentioned in the regular expression. To this condition, I want to check if the href value starts with http://www.xyz.com
. How can that be done?
$('a:regex(href,\\.(zip|mp\\d+|mpe*g|pdf|docx*|pptx*|xlsx*|jpe*g|png|gif|tiff*))
The regex helper function is below
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));
}
).live('click', function (e) {
// do some action..
});
The regex helper function is below
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在我看来,正则表达式中存在错误(
$
的位置)。但以下是链接选择器的方式:It looks to me like there's an error in the regex (with the position of the
$
). But here's how you would chain the selectors: