向所有具有相同文件扩展名的锚标记添加类

add class to all the anchor tag which have same file extention

本文关键字:添加 文件 扩展名      更新时间:2023-09-26
<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='pdf'),其文件扩展名为'pdf'。由于这段代码是动态生成的,我无法修改它。所以,我决定写一个jQuery代码。我把上面的代码搞砸了,它没有给我想要的输出。

请帮。

你必须迭代,现在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等类了

小提琴

换句话说:

$(document).ready(function () {
    $('table td span.file a').addClass(function () {
        return $(this).text().split('.').pop() == "pdf" ? "pdf" : null;
    });
});

—DEMO—

Thx @adeneo for jsFiddle基础样本

顺便说一句,你可以添加关于任何扩展的类:{哎呀,已经由adeneo发布…}

$(document).ready(function () {
    $('table td span.file a').addClass(function () {
        return $(this).text().split('.').pop();
    });
});

——演示——

这对你有帮助。

$(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');
      }
  });
});