JQuery:替换一个可见的角色

时间:2012-05-02 11:21:20

标签: jquery html

我有一个除了一个字符之外效果很好的字体:0幸运的是O是一个完美的替代品,所以我决定编写一些JQuery来删除所有的零并用它们替换它们首都Os:

$("body").html($("body").html().replace(/0/g,'O'));

这很有效,直到我在页面上有一个零的链接,例如:

<a href="http://92.21.52.108:9000">Our server</a>

这会改为:

<a href="http://92.21.52.1O8:9OOO">Our server</a>

我以为我会尝试使用$("body").text,但这完全不起作用。

如果我需要保留字体,我怎样才能解决这个特殊问题?

谢谢!

3 个答案:

答案 0 :(得分:3)

使用JQuery执行此操作是一个非常糟糕的主意。

更新字体以改进'0',或使用其他字体。

答案 1 :(得分:1)

这样可行,但我不知道,它是多么高效。

​$(function() {
    $('body *')
        .contents()
        .filter(function() {
             return( this.nodeType === 3 )
        })
        .each(function() {
             $(this).replaceWith($(this).text().replace(/0/g, 'O'))
        })

})​

http://jsfiddle.net/nPfDC/

答案 2 :(得分:-1)

引导Crockford,您可以像这样使用非jquery walker:

var walk_the_DOM = function walk(node, func) {
    func(node);
    node = node.firstChild;
    while (node) {
        walk(node, func);
        node = node.nextSibling;
    }
};

walk_the_DOM(document.body, function(node) {
    if(node.nodeType == 3 ) {
        node.data = node.data.replace(/0/g,'O')
    }
});​

在这里演示:http://jsfiddle.net/b7PtN/