如何使用 jQuery 的 .each() 替换文本/正则表达式?

use*_*241 3 html javascript regex jquery

我这里有这个代码:

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

document.getElementById("tweet_text").innerHTML = replaced;
Run Code Online (Sandbox Code Playgroud)

它从文本元素中获取文本,并突出显示提及和 URL 以使其可点击。这是replace()代码:

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>';
    });
}
Run Code Online (Sandbox Code Playgroud)

我有一长串 div/tweet,当我运行replace()它时,它只将模式匹配功能应用于一个 div。为了解决这个问题,我想到了使用 收集所有#tweet_textdiv .each(),然后在replace()循环后应用该函数。

有人可以帮我做吗?

Ben*_*ied 5

$('.your-tweet-class').each(function() {
    $(this).text( replace( $(this).text() ) );
});
Run Code Online (Sandbox Code Playgroud)

您可以删除空格,为了清楚起见,我只是将它们放入。