使用纯JavaScript创建对此HTML元素的引用的最有效方法是什么?

时间:2009-11-11 09:33:24

标签: javascript dom getelementbyid getelementsbyname

如果我有以下HTML:

<div id="container">
  <iframe></iframe>
</div>

创建对&lt; iframe&gt;的引用的最有效方式(主要是在性能方面)是什么? DOM元素?我正在使用以下内容:

var element = document.getElementById('container').getElementsByTagName('iframe')[0];
但是,IIRC,getElementsByTagName可能会表现缓慢。这不是问题,因为&lt; div id =“container”&gt;中只有一个元素。呢?

是否有更简洁,和/或效果更好的方式来获取&lt; iframe&gt;这里?可以肯定地说它始终是&lt; div id =“container”&gt;的唯一子项,但并不总是唯一的&lt; iframe&gt;在页面上。

3 个答案:

答案 0 :(得分:5)

在iframe上添加ID并使用gEBI引用它。如果您没有注意到gEBTN的任何延迟,那么我建议保持代码不变,并且为gEBTN帮助提供上下文。

答案 1 :(得分:4)

在这种情况下,你不会注意到性能。但是如果你做document.getElementsByTagName,你可能会注意到它,因为它必须遍历整个DOM树。

请记住,这并不总是与性能有关,在许多情况下,最好是拥有清晰易读的代码,然后 perl-one-liner 对任何人都会显得粗鲁,包括你,当他们在2周后重新访问它时。

如果您可以向id元素添加iframe属性,这当然是Meder所说的最佳解决方案。

答案 2 :(得分:0)

嗯,似乎代码没问题。我认为你可以忘记这些简单的javascript代码的性能。