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

3

Функция JQuery .text() является таким же, как яваскрипт собственности .innerText/.textContent.

Попробуйте '.html()' вместо '.text()'.

+0

Спасибо, приятель, почти такой же ответ, что и Базмегакапа, он бил вас до удара на 4 минуты. +1 – Anicho

+0

Нет функции 'innnerText()'. Это свойство. Google, что он делает точно. – kapa

+0

Вы правы. Он существует только «.innerText» и «.innerHTML». Прости. – reporter

Смежные вопросы