getElementsByTagName("*")的性能影响是什么?

Mot*_*tti 2 javascript cross-browser

首先让我说我不是JavaScript开发人员所以这个问题可能是相当基本的.

在模拟all我正在使用的IE非标准属性时getElementsByTagName("*"),两种方法之间是否存在显着的性能差异?

Ken*_*ric 7

对于兴趣,您可能会发现John Resig的这个讲座很有趣.当使用像你这样的dom方法时,它与新手和有经验的用户相关.

它在许多浏览器中讨论了许多可靠的dom方法警告.

其中之一就是在IE5中不getElementsByTagName(“*”)返回任何元素,并且在IE7下使用Objects + 做了奇怪的事情getElementsByTagName("*"),根据谈话,它使得:

  <a id="length"></a>
Run Code Online (Sandbox Code Playgroud)

表现好像有人做过:

  var a = getElementsByTagName("a"); 
  a.length = ""; # This overrides the arrays length attribute :/ 
Run Code Online (Sandbox Code Playgroud)

这样你就无法迭代数组了.

我不知道哪个javascript库绕过了这个漏洞,但你真的应该使用它来避免跨浏览器的头痛.