Seleccionar nodos de texto con jQuery
Seleccionar nodos de texto descendientes de un elemento con jQuery requiere un poco de creatividad. Si bien jQuery no ofrece una función específica para esta tarea, es posible combinar los métodos contenidos () y buscar () para lograr el resultado deseado.
jQuery Solution
var getTextNodesIn = function(el) { return $(el).find(":not(iframe)").addBack().contents().filter(function() { return this.nodeType == 3; }); }; getTextNodesIn(el);
Este código reúne los nodos infantiles, incluidos los nodos de texto, usando contenido (). Luego aísla los elementos descendientes y los nodos de texto usando Find (). Tenga en cuenta que esta solución requiere un manejo especial para los elementos de iframe.
pura solución javascript
Si prefiere un enfoque de javascript puro, la siguiente función puede usarse:
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; iEsta función atraviesa recursivamente el árbol DOM, identificando nodos de texto basados en su tipo de nodo. Permite la inclusión de nodos de espacio blanco al pasar un parámetro.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3