我有一个除了一个字符之外效果很好的字体: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
,但这完全不起作用。
如果我需要保留字体,我怎样才能解决这个特殊问题?
谢谢!
答案 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'))
})
})
答案 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')
}
});