1

テキストをクリックしたときにページ上のテキストを置き換えたり、クリックした単語を置き換えたりしたいと思います。DOM 内のすべての要素を選択し、textNodes を除外し、それぞれをタグでラップし、各タグにクリック イベント ハンドラーを追加するトップダウン アプローチを試みました。しかし、これは非常に遅く、特に非常に大規模で動的なサイトでは非効率的です。

クリックされたテキストを置き換えるだけです。event.target から開始してこれを行うボトムアップの方法はありますか? たとえば、event.target に最も近い textNode を見つけるにはどうすればよいですか?

4

2 に答える 2

0

あなたが与えた例では、次のことを行うことができます。詳細については、jQuery でテキスト ノードを選択するにはどうすればよいですか? を参照してください。

$(document).click(function(event) {     
    textNodes = $(event.target).contents().filter(function() {
        return this.nodeType == 3;
    });

    textNodes.each( function() {
         $(this).replaceWith("New Text");
    });
})
于 2013-02-25T21:15:56.897 に答える
-1

Jquery の .closest()を試しましたか?

説明:セット内の各要素について、要素自体をテストし、DOM ツリー内のその祖先をたどることによって、セレクターに一致する最初の要素を取得します。

于 2013-02-25T21:16:16.413 に答える