使用 jQuery 选择文本节点
将元素的所有后代文本节点作为 jQuery 集合检索可能是一项复杂的任务。由于 jQuery 缺乏专门的函数,因此需要组合使用方法。
解决方案包括使用contents()函数,它检索子节点(包括文本节点),以及find()函数,它检索子节点(包括文本节点)。选择所有后代元素(不包括文本节点)。通过合并这些结果,可以获得指定元素内的所有文本节点。
var getTextNodesIn = function(el) { return $(el).find(":not(iframe)").addBack().contents().filter(function() { return this.nodeType == 3; }); }; getTextNodesIn(el);
注意事项:
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);
以上是如何使用 jQuery 高效地选择元素内的所有文本节点?的详细内容。更多信息请关注PHP中文网其他相关文章!