How can I use jquery's .each () to replace the text / regex?

I have this code right here:

var tweetText = $("#tweet_text").text();
var replaced = replace(tweetText);

document.getElementById("tweet_text").innerHTML = replaced;

It gets text from a text element, and highlights the mentions and URLS to make them clickable. Here is the replace() code:

function replace(text) {
    return text.replace(/([@#])([a-z\d_]+)/ig, function(_, marker, tag) {
        if (marker === "@")
            return '<a href="?r=site/twitterprofile&q=$1">' + "@" + tag + '</a>';
        return '<a href="?r=site/hashtag&q=$2">' + "#" + tag + '</a>';
    });
}

I have a long list of divs / tweets, and when I run replace() it only applies the pattern matching function to one div. To get around this, I thought of collecting all of the #tweet_text divs using .each() , and then applying the replace() function once it loops through.

Could somebody help me do that please?

$('.your-tweet-class').each(function() {
    $(this).text( replace( $(this).text() ) );
});

You can remove the spaces, I just put them in for clarity.

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章