我正在根据“href”文件类型更改“a”标记的类。它工作正常。这是代码:
$('#divComment a[href$=".pdf"]').removeClass().addClass("pdf");
$('#divComment a[href$=".doc"]').removeClass().addClass("word");
$('#divComment a[href$=".docx"]').removeClass().addClass("word");
$('#divComment a[href$=".zip"]').removeClass().addClass("zip");
$('#divComment a[href$=".jpg"]').removeClass().addClass("image");
$('#divComment a[href$=".xls"]').removeClass().addClass("excel");
$('#divComment a[href$=".xlsx"]').removeClass().addClass("excel");
如何优化此代码?
答案 0 :(得分:6)
如果通过优化,您的意思是使代码更简洁和可维护,那么您可以创建一个查找表。
示例:
var extensions = {
'.pdf': 'pdf',
'.doc': 'word'
// ...
};
$('#divComment a').each(function() {
var match = this.href.match(/\..+$/);
if(match && extensions[match[0]]) {
$(this).removeClass().addClass(extensions[match[0]]);
}
});
答案 1 :(得分:1)
试试这个
$(document).ready(function(){
var extensions = {
'pdf': 'pdf',
'doc': 'word'
};
$('#divComment a').each(function() {
var href = this.href;
var ext = href.split('.').pop().toLowerCase();
if(extensions[ext]) {
$(this).addClass(extensions[ext]);
}
});
});
来自@Felix Kling帖子的想法..
答案 2 :(得分:0)
在$('#divComment a')。attr('href')上尝试切换案例。