2011-03-11 78 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

相关问题