2011-08-11 463 views
0

我需要做一兩件事:jQuery的文件擴展名

<li class="pdf"><a href="#">failanosaukums.pdf</a></li> 
<li class="excel"><a href="#">failanosaukums.exel</a></li> 
<li class="word"><a href="#">failanosaukums.doc</a></li> 

如果文件exstensions是PDF格式,加上李種類PDF,DOC和,EXEL,MP3。

我認爲像這樣

var ext = ul li a each split (.) 
$(this).parent().addClass(ext) 
+4

你爲什麼要到j來實現這一目標查詢?如果你有一些東西在生成文件列表,那麼在生成剩餘的HTML時添加這些類似乎更明智。 – doctorless

+0

我需要這個wordpress附件插件。這是最簡單的方法之一。 – dero

回答

1

我真的不知道,如果你正在想是個好主意,但這樣會爲你做它。

var files = $("li a"); 

files.each(function(idx, el) { $(el).parent().addClass($(el).text().split(".").pop()) }); 
2

如果生成HTML的休息,當你不能做到這一點的服務器端,這應該工作

$("ul.files a").each(function() { 
    var $this = $(this); 
    var text = $this.text(); 
    var ext = text.substring(text.lastIndexOf('.') + 1); 

    $this.parent().addClass(ext); 
}); 
0

我與其他人是服務器端的同意是要走的路,但如果你必須這樣做客戶端:

$('.downloads li').addClass(function() { 
    return $('a', this).text().split('.').pop(); 
}); 

示例 - http://jsfiddle.net/RNvnL/3/

+0

var files = $(「。downloads ul li a」); \t files.each(function(idx,el){$(el).parent()。addClass($(el).attr('href')。split(「。」)。pop())}); (this).attr('class'); \t var txt = $(this).find(「a」); ).text(); \t $(this).find('a').text(txt +'。'+ c_name); \t}); – dero

+0

你發佈的任何原因? –