0

私は現在、次のコードを持っています

$(document).ready(function () {
    var html = $('#wrapper').html();
    $('#wrapper').html(html.replace(/hello/gi, 'hello<sup>&#174;</sup>'));
});

画像内にある場合、またはドキュメント名に関連付けられている場合に「hello」を置き換えないように、「not」機能を追加するにはどうすればよいですか?

たとえば、「こんにちは」をページのどこでも置き換えたいのですが、

<img src="path/hello.jpg"/>

また

<a href="path/documents/hello.pdf">test</a>
4

1 に答える 1

1

本文内からすべての要素を取得し、それらを繰り返し処理し、テキスト ノードがあるかどうかを確認し、それらのtext()値を取得してから、テキストで取得されたものに基づいて HTML を変更できます。aこれにより、内部属性値が完全に回避され、要素内のテキストを否定することはありません。

$(document).ready(function () {
    $('body *').each(function () {
        var children = this.childNodes;
        if (children.length === 1) {
            if (children[0].nodeType === 3) {
                var text = $(this).text();
                $(this).html(text.replace(/((H|h)ello)/gi, '$1<sup>&#174;</sup>'));
            }

        }
    });
});

jsフィドル

于 2013-07-23T00:50:19.237 に答える