我想使用Javascript replace()添加html标签(但它将它们作为字符串返回)

时间:2011-10-27 20:25:45

标签: javascript jquery html regex

我有一个简单的javascript函数,它用任何span.certain_class替换“y”字符并带有“i”:

$(document).ready(function() {
$('span.certain_class').each(function() {
    $(this).text($(this).text().replace(/y/ig, function(s) {
        return (s === 'Y' ? 'I' : 'i');
    }));
});

});

我遇到的问题是我想用一个span来包装被替换的角色:

<span>i</span>

当我这样做时,浏览器会将标签打印为字符串,而不是将它们解析为HTML代码。

任何人都可以帮我解决这个问题吗?

4 个答案:

答案 0 :(得分:2)

尝试

$(this).html($(this).text().replace........

这将使结果解析为HTML而不是纯文本。

答案 1 :(得分:1)

使用$(this).html(...)代替.text()来设置内容。您可能还希望在阅读要替换的内容时使用html(取决于您在场景中的内容)。

答案 2 :(得分:1)

您应该只需将第一次通话更改为text()即可拨打html()

$(this).html($(this).text().rep...

答案 3 :(得分:1)

$(document).ready(function() {
    $('span.certain_class').each(function() {
        $(this).html($(this).text().replace(/y/ig, function(s) {
            return (s === 'Y' ? 'I' : 'i');
        }));
    });
});

将$(this).text更改为$(this).html