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

时间:2014-06-06 14:01:17

标签: javascript jquery addclass

<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代码。 我用上面的代码搞砸了一些东西,它没有给我想要的输出。

请帮忙。

3 个答案:

答案 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');
      }
  });
});

FIDDLE

更加狡猾的做法是将扩展名作为类

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

这样你就可以自动在锚点上设置pdf,docx等类

FIDDLE

答案 1 :(得分:1)

另一种方式:

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

--DEMO--

Thx @adeneo

BTW,你可以添加关于任何扩展的类: {oops,已经由adeneo发布...}

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

--DEMO--

答案 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');
      }
  });
});