0

假设我有一个小的 ID 列表(大约 10 个),我想在 Html 页面中获取相应的元素。

我应该在每个 ID 上使用 getElementbyId(),还是可以像这样遍历 DOM:

for (var i = 0; i < element.childNodes.length; i++)
{
    var childNode = <HTMLElement>element.childNodes[i];

    if (this.Ids.indexOf(node.id, 0) >= 0)
            this.collection.setValue(node.id, <HTMLInputElement>node)

    if (childNode.childNodes.length > 0)
        this.iterateHtmlNodes(task, childNode);
}
  • 这是最快的方法吗?
  • 哪个是最好的方法?
  • 如果我有更多的元素要获取 (>100) 怎么办?

我正在使用打字稿。

4

2 回答 2

5

在任何情况下,使用GetElementById都会更快,因为在浏览器中它使用本机功能支持。

于 2013-07-02T13:07:12.270 回答
2

最快的方法取决于底层 JS/Typescript 引擎的实现,因此您需要进行一些基准测试并查看结果。

如果要解析的文档符合 id 唯一性,我会采用这种getElementById方法。在真实世界的文档中,您可能需要使用迭代方法,但如果有多个具有相同标识符的元素,请注意意外结果。

此外,“最好”意味着一些主观性,所以我会为了代码清晰而使用该getElementById选项。

于 2013-07-02T13:17:03.143 回答