>웹 프론트엔드 >JS 튜토리얼 >jQuery 또는 Pure JavaScript를 사용하여 요소 내에서 텍스트 노드를 어떻게 선택할 수 있습니까?

jQuery 또는 Pure JavaScript를 사용하여 요소 내에서 텍스트 노드를 어떻게 선택할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-28 01:59:09190검색

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);

content()를 사용하여 텍스트 노드를 포함한 하위 노드를 수집하는 코드입니다. 그런 다음 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.