2011-03-11 103 views
0

這是我的HTML代碼片段。javascript:如何找到給定innerhtml的父節點

<div id='advanced'> 
    <a id='javscript'>testing</a> 
</div> 

我需要找到給定innerhtml測試的父節點。

+0

嗨 這是我的HTML代碼片段。

我需要找到給定innerhtml測試的父節點。 – Anil 2011-03-11 11:13:42

+0

你爲什麼需要這樣做?任何解決方案都將效率極低,需要循環遍歷每個節點並檢查其innerHTML字符串,直到到達匹配節點。無論如何,這可能是更好的方法。 – 2011-03-11 11:15:51

+0

這可能但很複雜,例如通過一些正則表達式。真正的問題是,你爲什麼在這種情況下,而不是更安全? – dtech 2011-03-11 11:18:15

回答

0

你可能想要考慮使用庫,特別是jQuery。 這將使這種類型的搜索非常容易。 這應該工作: http://api.jquery.com/contains-selector/

+4

是的,jQuery使得它非常容易做一個非常低效的搜索... :) – Guffa 2011-03-11 11:21:50

+1

不要討厭玩家,討厭遊戲:) – 2011-03-11 11:59:55

1

正如其他人所說,你可能想考慮重新思考你想要實現的任何。無論如何,如果你只需要做一次查找,那麼你只需要遍歷DOM樹中的每個節點,並根據文本內容測試你的字符串。如果你需要多次執行,那麼這將變得非常緩慢。因此,一個可能的解決方案是:在DOM上循環並將innerHTML放入哈希中,文本作爲鍵(字段),父節點作爲值。然後,對於任何文本,您都可以針對散列進行測試,並返回父節點(如果存在)。 但是 - 不要僅僅在每個節點的每個innerHTML中爆炸 - 這會導致一個大對象。如果它只是你之後的文本節點,那麼只能將它們粘貼到你的哈希中。

+0

這是解決這個問題的方法!在樹上解析。現在實現僅僅取決於寫入效率的高低。 – 2011-03-11 11:42:26

相關問題