如何使用 jQuery 或純 JavaScript 有效率地選擇元素內的文字節點?
Dec 16, 2024 pm 12:32 PM使用 jQuery 選擇文字節點
在 jQuery 中選擇元素內的文字節點可能是一項具有挑戰性的任務。幸運的是,有多種方法可以實現這一點。
方法 1:結合 Contents() 和 Find()
jQuery 沒有提供專門的選擇函數文字節點。但是,解決方法涉及利用contents()方法,該方法檢索包括文字節點的子節點,並將其與find()方法結合使用,該方法選擇後代元素但排除文字節點。
var getTextNodesIn = function(el) { return $(el).find(":not(iframe)").addBack().contents().filter(function() { return this.nodeType == 3; }); };
登入後複製
注意: 對於1.7 之前的jQuery 版本,將addBack() 替換為andSelf(),對於1.8 或更高版本,使用addBack().
方法2:純DOM解決方案
如果您喜歡更有效率的解決方案,可以採用非 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; }
登入後複製
用法範例
兩種方法都允許您擷取指定元素內的所有文字節點。
var textNodes = getTextNodesIn(el);
登入後複製
透過自訂includeWhitespaceNodes參數,可以選擇是否留白文字節點包含在結果中。
以上是如何使用 jQuery 或純 JavaScript 有效率地選擇元素內的文字節點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)