我正在编写jQuery代码,我需要检查链接是否是图像。目前代码如下所示:
$('a[href$=".png"]').click(function() {
// do something smart
});
是否可以在代码中包含一系列属性,以检查多种格式,如下所示:
$('a[href$=.jpg],a[href$=.jpeg],a[href$=.png]').click(function() {
// do something even smarter
});
这里的最佳做法是什么?谢谢!
答案 0 :(得分:2)
是的,你可以做到。
这完全合法。
您还可以检查点击href是什么:
$('a').click(function(){
var href = this.href;
var hrefParts = href.split('.'); //array(0: fileName, ...length - 1: extension)
if(hrefParts[hrefParts.length - 1] == 'png'){...}
//etcetera...
});
答案 1 :(得分:0)
是的,这就是你group selectors
的方式答案 2 :(得分:0)
$('a').each(function() {
var ext = $(this).attr('href').substr('-4');
if (ext == '.png' || ext == '.jpg') {
... continue ...
}
});
答案 3 :(得分:0)
如果你想再使用jQuery ......
$('a').click(function(e) {
var ext = $(this).attr('href').split('.').slice(-1);
switch( ext ) {
case 'png':
// Code for PNGs!
break;
case 'jpg':
case 'jpeg':
// Code for JPGs!
break;
default:
// Otherwise....
}
});
答案 4 :(得分:0)
我会设置一个将扩展名链接到正确函数的对象。
利用尼尔的榜样......
var extToFun = {
png:function(){},
gif:function(){}
};
$('a').click(function(){
var href = this.href.split('.');
var ext = href[hrefParts.length - 1];
if(extToFun[ext])extToFun[ext].call(this);
});