2012-02-06 132 views
1

我目前有:文本不更改链接

$('.tweet').text(function (_, text) { 

     var exp = /(#(\S+))/g; 

     return text.replace(exp, '<a href="http://twitter.com/#!/search/%23$2"> 
             `$1 
            </a>' 
          ); 

    }); 

这创造基本上是这样的:

<a href="http://twitter.com/#!/search/%23data">#data </a>

,但它仍然显示为文本,而不是链接。

图片例如:

enter image description here

回答

5

使用.html()代替.text()

如果使用.text(),你的HTML将被转义:

我们需要注意,这种方法逃逸提供必要的 ,使其在HTML正确地呈现字符串。为此,它调用 DOM方法.createTextNode(),该方法用它们的HTML实体替代特殊字符 (例如&lt;代替<)。

jsFiddle Example with .html()

+0

接受工作像一个魅力伙计:)。 – Anicho 2012-02-06 09:42:06

3

jQuery函数.text()相同的JavaScript属性.innerText/.textContent

尝试'.html()'而不是'.text()'。

+0

非常感谢Buddy和Bazmegakapa一样的回答,他在4分钟内击败了你。 +1 – Anicho 2012-02-06 09:41:55

+0

没有'innnerText()'函数。这是一个财产。谷歌正是在做什么。 – kapa 2012-02-06 09:46:27

+0

你是对的。它只存在'.innerText'和'.innerHTML'。对不起。 – reporter 2012-02-06 09:50:05