<table>
<tr>
<td>
<span class="file"><a class="" href="#">test1.docx</a></span>
<span class="file"><a class="" href="#">test1.pdf</a></span>
</td>
<td>
<span class="file"><a class="" href="#">test1.docx</a></span>
<span class="file"><a class="" href="#">test1.pdf</a></span>
</td>
</tr>
<tr>
<td>
<span class="file"><a class="" href="#">test2.docx</a></span>
<span class="file"><a class="" href="#">test2.pdf</a></span>
</td>
<td>
<span class="file"><a class="" href="#">test2.docx</a></span>
<span class="file"><a class="" href="#">test2.pdf</a></span>
</td>
</tr>
</table>
<script>
$(document).ready(function(){
var fileName = $('table td span.file a').text();
var ext = fileName.text().split('.').pop();
if(ext == pdf) {
$(this).addClass('pdf');
}
});
</script>
上述代码的目的是将类(class =&#39; pdf&#39;)添加到锚标记,其文件扩展名为&#39; pdf&#39;。由于此代码是动态生成的,因此我无权修改它。所以,我决定写一个jQuery代码。 我用上面的代码搞砸了一些东西,它没有给我想要的输出。
请帮忙。
答案 0 :(得分:4)
你必须迭代,现在this
是文件,而不是每个锚
$(document).ready(function(){
$('table td span.file a').each(function() {
var ext = $(this).text().split('.').pop();
if(ext == 'pdf') {
$(this).addClass('pdf');
}
});
});
更加狡猾的做法是将扩展名作为类
返回$('table td span.file a').addClass(function() {
return $(this).text().split('.').pop();
});
这样你就可以自动在锚点上设置pdf,docx等类
答案 1 :(得分:1)
另一种方式:
$(document).ready(function () {
$('table td span.file a').addClass(function () {
return $(this).text().split('.').pop() == "pdf" ? "pdf" : null;
});
});
对于jsFiddle基础样本
BTW,你可以添加关于任何扩展的类: {oops,已经由adeneo发布...}
$(document).ready(function () {
$('table td span.file a').addClass(function () {
return $(this).text().split('.').pop();
});
});
答案 2 :(得分:0)
这会对你有帮助。
$(document).ready(function(){
$('table td span.file a').each(function() {
var ext = $(this).text().split('.').pop();
if(ext == pdf) {
$(this).addClass('pdf');
}
else if(ext == docx)
{
$(this).addClass('docx');
}
});
});