1

我一直都知道我们需要将 id 属性添加到元素中,以便对它进行一些独特的访问。标题应该只是html文档中的一个元素,所以它是一个独特的元素。

它与javascript和Frames有关吗?或者因为我们也有属性 title 并且对于一些 javascript 函数会更容易通过 ID 找到它?

谢谢。

4

1 回答 1

3

原因有两个:

  1. 通过标签名称 (document.getElementsByTagName) 访问任何内容总是比通过 id (document.getElementById) 访问内容要慢。这是因为 getElementByTagName 总是返回一个 LIVE nodeList(或 HTMLCollection)。这意味着它不仅必须搜索整个文档结构以查找所有标题(并返回标题集合),它还将使列表保持活动状态并在插入时更新。然而,大多数浏览器都有一种非常快速的索引 id 方法,它只会返回元素引用(即不必保持任何更新)。

  2. 如果页面上有框架,那么 document.getElementsByTagName('title') 将返回页面上所有标题的列表(即包括任何 iframe 标题),这显然不是他们想要的。然后他们必须搜索 nodeList 以找到他们正在寻找的标题。我在 jsfiddle 上做了一个简单的例子: http: //jsfiddle.net/9QtZu/

    var titles = document.getElementsByTagName('title');
    console.log(titles);
    

因此,使用 document.getElementById 可以让他们更快地访问他们所追求的主标题,同时也提高了性能。没有比赛。

https://developer.mozilla.org/en-US/docs/Web/API/document.getElementById https://developer.mozilla.org/en-US/docs/Web/API/element.getElementsByTagName

于 2013-05-30T10:34:02.050 回答