1

如果我有以下 HTML:

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

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

var element = document.getElementById('container').getElementsByTagName('iframe')[0];

不过,IIRC getElementsByTagName 的执行速度可能很慢。这不是问题,因为 <div id="container"> 中只有一个元素吗?

是否有更简洁和/或性能更好的方式来获取 <iframe> ?可以肯定地说,它始终是 <div id="container"> 的唯一子元素,但并不总是页面上唯一的 <iframe>。

4

3 回答 3

5

在 iframe 上放置一个 ID 并使用gEBI. 如果您没有注意到任何延迟,gEBTN那么我建议保持代码不变,是的,提供gEBTN帮助的上下文。

于 2009-11-11T09:36:38.213 回答
4

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

请记住,这并不总是与性能有关,在许多情况下,最好是拥有清晰可读的代码,而不是一个perl-one-liner,当他们在 2 周后重新访问它时,包括你在内的任何人都会觉得它像胡言乱语。

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

于 2009-11-11T09:36:44.610 回答
0

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

于 2009-11-11T09:37:27.850 回答