我想首先说我不是jQuery的专家,这似乎是一个非标准的问题.
基本上我正在使用wordpress创建一个博客,并将其合并到循环中,它显示来自我的Twitter个人资料的推文.我想知道如何从这些推文中选择主题标签(例如#foo),然后将html链接应用于主题标签,如下所示…
<a class="hashtag" href="http://twitter.com/#search?q=foo">#foo</a>
链接还必须将#标签(减去#)的值放入链接的#search?q =部分.
这是可能的,如果是这样,我将如何做到这一点?
谢谢,
查理瑞恩
编辑:
<h1>Lorem ipsum dolor sit amet #foo et adipiscing</h1>
所以基本上我需要找到所有以#开头的字符串,并用链接替换它们,如上所示.
解决方法
您可以创建一个正则表达式来查找这些主题标签并用链接替换它们,使用反向引用来获取匹配的标记.
hashtag_regexp = /#([a-zA-Z0-9]+)/g; function linkHashtags(text) { return text.replace( hashtag_regexp,'<a class="hashtag" href="http://twitter.com/#search?q=$1">#$1</a>' ); } $(document).ready(function(){ $('p').each(function() { $(this).html(linkHashtags($(this).html())); }); });
编辑:我已将相关代码移动到接受带有主题标签的字符串的函数中,并返回相同的字符串,并将标记替换为链接.它不依赖于jQuery.
$('p').html(linkHashtags($('p').html()));
您只需传递一个元素html值,并将值替换为调用linkHashtags的结果.人们可能会编写一个jQuery插件来使这更容易使用.
那个正则表达式可能需要一些工作,我不确定哪些字符可以在一个标签内使用,但我想你明白了.