1

私は Podunk 社の Web ページを持っています。しかし、Podunk がページに表示されるたびに (どこにいても)、Podunk として表示する必要があります!

これはページのどこにでもあるので、ヘッダー タグ、リスト タグ、複数のネストされた DIV などにある可能性があることに注意してください。

これについて最善の方法は何ですか?(CSS とは対照的に) jQuery の方が優れたソリューションだと考えていますが、どうすればよいかわかりません。ページ要素全体でこの種の置換のコード スニペットを提供してください。

4

2 に答える 2

1

イタリック体で表示する必要がある場合、最も確実な方法は、使用<i>Podunk</i>するフォント ファミリがイタリック体であることを確認することです。

iいずれにせよ、これは誤った目的であるため、同僚がマークアップは「セマンティック」ではないと言っていることを心配する必要はありません。しかし<i class=company>Podunk</i>、クライアントが気がついた場合に、賢明なイタリック体の使用をやめることなく、そのようなイタリック体の使用をやめやすくするために、 の使用を検討することもできます。

于 2012-12-17T20:03:45.590 に答える
1

私の元の答えは間違っていました(コメントで指摘されているように:))正しい解決策を含めるようにこの回答を編集しました。

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>. 

これは少し考えれば克服できると思います。

于 2012-12-17T18:49:32.180 に答える