使用 jQuery 檢索文字節點
將元素的所有後代文字節點作為 jQuery 集合檢索的任務可能會帶來挑戰。雖然jQuery 缺乏用於此特定目的的專用函數,但我們可以透過組合contents() 和find().
的功能來實現此目標jQuery方法:
var getTextNodesIn = function(el) { return $(el).find(":not(iframe)").addBack().contents().filter(function() { return this.nodeType == 3; }); }; getTextNodesIn(el);
此方法檢索所有後代文字節點,不包括iframes.
非jQuery 方法:
為了更🎜>為了有效的解決方案,可以採用基於DOM的遞歸函數: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 元素,從而更好地控制空白文字節點包含。
以上是如何使用 jQuery 或非 jQuery 方法有效地檢索元素的所有後代文字節點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!