首页 > web前端 > js教程 > 如何使用 jQuery 或纯 JavaScript 选择元素内的文本节点?

如何使用 jQuery 或纯 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 或纯 JavaScript 选择元素内的文本节点?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板