2016-10-03 67 views
-1

在互联网上发现这里是一个这样的脚本,我不明白它是否有效?当我改变JQ数组$没有给出错误,但没有工作如何使用jQuery确定类型文件

jQ('.b_article-full a').each(function() { 
 
  if(/.*\.pdf/.test(jQ(this).attr('href'))) { 
 
    jQ(this).before('<i class="b_icons pdf"></i> '); 
 
  } 
 
  if(/.*\.zip/.test(jQ(this).attr('href'))) { 
 
    jQ(this).before('<i class="b_icons zip"></i> '); 
 
  } 
 
  if(/.*\.doc/.test(jQ(this).attr('href'))) { 
 
    jQ(this).before('<i class="b_icons doc"></i> '); 
 
  } 
 
  if(/.*\.docx/.test(jQ(this).attr('href'))) { 
 
    jQ(this).before('<i class="b_icons doc"></i> '); 
 
  } 
 
});
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores ea pariatur accusantium sit, alias dicta repellat vitae ad ratione numquam.<a href="example.pdf"> Distinctio sapiente unde, at eligendi placeat exercitationem eius eveniet sed?</a>.</p>

+1

它正在寻找一个类为'b_article_full'的元素,并且下降到内部的'a'标签正在检查它的'href'文件扩展名。你错过了这个代码运行的第一个条件 –

+0

@LelioFaieta谢谢...我很惭愧(( – TriSTaR

+0

不用担心。请参阅正确代码的答案:) –

回答

3
<p class="b_article-full">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores ea pariatur accusantium sit, alias dicta repellat vitae ad ratione numquam.<a href="example.pdf"> Distinctio sapiente unde, at eligendi placeat exercitationem eius eveniet sed?</a>.</p> 

你错过了类应用于p元素为您的代码运行。

2

首先在你的例子中,看起来jQjQuery的别名。您可以使用$变量,只要您没有其他图书馆的干扰。

要解决您的问题,您应该修改选择器以找到a元素。在你的例子中,你需要添加一个b_article-full类的包含元素。在下面的示例中,我将它放置在p上。

另请注意,switch声明似乎比if条件的列表更合适。您还可以通过将文件名拆分为.并获取数组中的最后一个元素来检索扩展。试试这个:

$('.b_article-full a').each(function() { 
 
    var extension = $(this).attr('href').split('.').pop().toLowerCase(); 
 
    switch (extension) { 
 
     case 'pdf': 
 
     $(this).before('<i class="b_icons pdf">PDF ICON</i>'); 
 
     break; 
 
     case 'zip': 
 
     $(this).before('<i class="b_icons zip">ZIP ICON</i>'); 
 
     break; 
 
     case 'doc': 
 
     case 'docx': 
 
     $(this).before('<i class="b_icons doc">DOC ICON</i>'); 
 
     break; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="b_article-full"> 
 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores ea pariatur accusantium sit, alias dicta repellat vitae ad ratione numquam. 
 
    <a href="example.pdf">Distinctio sapiente unde, at eligendi placeat exercitationem eius eveniet sed?</a>. 
 
</p>

注意,我把i元素中的文本只是,这样他们就出现在例如,因为我没有获得您所使用的样式表。

+0

感谢您的示例和手册))) – TriSTaR