«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу выбрать текстовые узлы в элементе, используя jQuery или Pure JavaScript?

Как я могу выбрать текстовые узлы в элементе, используя jQuery или Pure JavaScript?

Опубликовано в 2025-03-24
Просматривать:461

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

Выбор текстовых узлов с помощью jQuery

] Выбор текстовых узлов потока элемента с jQuery требует небольшого творчества. В то время как jQuery не предлагает определенную функцию для этой задачи, можно объединить методы contents () и find () для достижения желаемого результата.

jquery solution

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

getTextNodesIn(el);

Этот код собирает детские узлы, включая текстовые узлы, используя contents (). Затем он изолирует элементы потомков и текстовые узлы, используя find (). Обратите внимание, что это решение требует специальной обработки для элементов iframe.

pure javascript solution

Если вы предпочитаете чистый подход 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  

эта функция рекурсивно проходит дерево DOM, идентифицируя текстовые узлы на основе их типа узла. Это позволяет включать узлы пробелов путем передачи параметра.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3