当包含特定文件扩展名时,如何将类添加到超链接?
Posted
技术标签:
【中文标题】当包含特定文件扩展名时,如何将类添加到超链接?【英文标题】:How to add a class to a hyperlink when it contains a specific file extension? 【发布时间】:2011-06-17 08:57:50 【问题描述】:谁能告诉我如何获取一个字符串并针对它运行一个函数来检查特定类型的文件(比如“.pdf”)。如果字符串包含文件,则需要将“pdf”类应用于包含链接的锚点。
这是一个字符串的例子:
<a href="/downloads/myfile.pdf">My PDF</a>
我想改成这样:
<a href="/downloads/myfile.pdf" class="pdf">My PDF</a>
【问题讨论】:
【参考方案1】:在 CSS 中执行此操作:
a[href$=".pdf"]
/* some rules */
但这可能不被某些浏览器支持。
或者,在 javascript、jQuery 或任何库中执行此操作:
$('a[href$=".pdf"]').addClass('pdf'); // in jQuery
或者没有库:
var elems = document.getElementByTagName('a');
for (var i = 0; i < elems.length; ++i)
var a = elems[i];
if (/\.pdf$/.test(a.href))
a.className = 'pdf';
【讨论】:
感谢您的回复。这些都是很好的解决方案,但是它需要在 IE6/7 中得到支持(所以没有 CSS),我希望能够在没有任何 JS 的情况下做到这一点,因此使用服务器端代码来应用它——我只是没有非常适合 php。 ;)【参考方案2】:(<a\s+href="[^"]*\.([A-Za-z0-9]2,5)\s*")([^>]*>)
替换为
\1 class="\2" \3
python 代码:
import re,sys
file = sys.argv[1]
f = open(file, 'r')
text = f.read()
f.close()
text = re.sub(r'(<a\s+href="[^"]*\.([A-Za-z0-9]2,5)\s*")([^>]*>)', r'\1 class="\2" \3', te$
f = open(file+'.re','w')
f.write(text)
f.close()
可以用它来修改html静态
【讨论】:
以上是关于当包含特定文件扩展名时,如何将类添加到超链接?的主要内容,如果未能解决你的问题,请参考以下文章