使用 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中文網其他相關文章!