[英]How can I find a text node in the live DOM using its copy/clone?
我已經從頁面中復制了一些文本節點(即實時DOM),並將其存儲在數組中。 是否可以在實時DOM中再次找到那些確切的節點? 我將需要使用普通的JavaScript。
這基本上就是我的項目的工作方式:
select
和exclude
。 select
器生成一個元素集合,然后將其克隆。 select
集合運行exclude
選擇器,找到所有匹配的元素,並將它們從select
集合中刪除。 exclude
部分的select
集合,遍歷它以構建僅包含文本節點的數組。 data
出現的位置/偏移量。 給定后一個數組,我需要能夠將在其中找到匹配術語的克隆文本節點與從中克隆出它們的原始文本節點進行匹配。 如果可以這樣做,我可以遍歷對象數組,首先找到與實時DOM相對應的文本節點(最初從中復制該文本節點),然后將該術語鏈接到我記錄的位置/偏移處在對象中。
希望這是有道理的-如果沒有請告訴我,我可以提供更多詳細信息。 這必須是確定性的-即,我不能只在實時DOM中搜索具有相同data
的文本節點,因為這可能導致誤報。
同樣,我必須在這里使用普通的JavaScript,而不是jQuery或任何其他庫。
感謝您的幫助!
一般來說,您不能。 克隆后,新克隆與舊節點具有不同的身份。 沒有通用方法可以將節點綁定到從其克隆的節點。
如果您知道最頂層的克隆祖先節點以及從中克隆的節點,那么您自然可以使用其父childNode列表中每個祖先的索引從最頂層祖先到特定節點……但是僅假設自克隆以來兩個DOM都沒有發生突變。
否則,您將遭受一些駭人聽聞的駭客攻擊,例如克隆后立即遍歷克隆的整個DOM,向每個節點寫入一個expando屬性以引用源節點。
我不確定為什么要克隆所有節點。 在您描述的過程中,您肯定可以將實時文檔節點存儲在列表中,而無需進行任何克隆?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.