2012-02-06 129 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