ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery または Pure JavaScript を使用して要素内のテキスト ノードを選択するにはどうすればよいですか?

jQuery または Pure JavaScript を使用して要素内のテキスト ノードを選択するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-28 01:59:09
オリジナル
185 人が閲覧しました

How Can I Select Text Nodes within an Element Using jQuery or Pure JavaScript?

jQuery を使用したテキスト ノードの選択

jQuery を使用して要素の子孫テキスト ノードを選択するには、少し創造性が必要です。 jQuery はこのタスク用の特定の関数を提供しませんが、メソッド content() と find() を組み合わせて目的の結果を得ることができます。

jQuery ソリューション

var getTextNodesIn = function(el) {
    return $(el).find(":not(iframe)").addBack().contents().filter(function() {
        return this.nodeType == 3;
    });
};

getTextNodesIn(el);
ログイン後にコピー

このコードは、contents() を使用して、テキスト ノードを含む子ノードを収集します。次に、find() を使用して子孫要素とテキスト ノードを分離します。このソリューションでは、iframe 要素に特別な処理が必要であることに注意してください。

純粋な JavaScript ソリューション

純粋な JavaScript アプローチを希望する場合は、次の関数を使用できます。

function getTextNodesIn(node, includeWhitespaceNodes) {
    var textNodes = [], nonWhitespaceMatcher = /\S/;

    function getTextNodes(node) {
        if (node.nodeType == 3) {
            if (includeWhitespaceNodes || nonWhitespaceMatcher.test(node.nodeValue)) {
                textNodes.push(node);
            }
        } else {
            for (var i = 0, len = node.childNodes.length; i < len; ++i) {
                getTextNodes(node.childNodes[i]);
            }
        }
    }

    getTextNodes(node);
    return textNodes;
}

getTextNodesIn(el);
ログイン後にコピー

この関数は DOM ツリーを再帰的に走査し、ノード タイプに基づいてテキスト ノードを識別します。パラメータを渡すことで空白ノードを含めることができます。

以上がjQuery または Pure JavaScript を使用して要素内のテキスト ノードを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート