我有Podunk公司的网页。但是每次Podunk出现在页面上(无论它在哪里)都需要显示为Podunk!

请注意,这是页面上的任何位置,因此可以在标头标签,列表标签,多个嵌套DIV等中使用。

最好的方法是什么?我认为jQuery是更好的解决方案(相对于CSS),但是我不知道该怎么做?有人可以在整个页面元素上提供这种替换代码段。

最佳答案

我的原始答案不正确(如评论中所指出:))我已经编辑了此答案以包括正确的解决方案。

var rgx = /Podunk/g;
$("body *")
    .contents()
    .filter(function() {
        if (this.nodeType !== 3){
            return false;
        }
        return true;
    })
    .each(function(){
        var $this = $(this);
        var txt = $this.text();
        if (rgx.test(txt)){
            $this.replaceWith("<span>" + txt.replace(rgx,"<span class='podunk'>Podunk</span>") + "</span>");
        };
    });​


不利之处在于,其中只有Podunk的任何元素都会获得额外的span元素。即,如果你有

<a>Podunk</a>


你最终得到

<a><span><span class="podunk">Podunk</span></span>.


我认为只要稍加考虑就可以解决。

10-07 15:32