document.object比的document.getElementById()

时间:2013-10-03 15:44:30

标签: javascript

以下这两种语法之间的区别是什么 -

document.object document.getElementById()

我想知道何时使用哪种语法 ???

e.g .-

CODE1(使用<form>实施)

<body onload="document.forms[1].innerHTML='hi';">//Alt: onload="document.getElementById('f1').innerHTML='hi';"
<form id=f1>
    <input />
</form>
<form id=f2>
    <input />
</form>
</body>

onload中的语法都以相同的方式工作。但这不适用于以下内容 -

CODE2(使用<div>实施)

<body onload="document.getElementById('div1').innerHTML='hi';">//cannot use the syntax: onload="document.divs[1].innerHTML='hi';"
<div id=div1>hello</div>
<div id=div2>hello</div>
</body>

所以语法肯定: document.object 不适用于<div> - 元素但适用于<form>'-element. But ** document.getElementById()`**适用于两者。那我什么时候应该使用哪一个?

有人请强调两种语法之间的差异。

提前完成了......

3 个答案:

答案 0 :(得分:3)

document.forms是一种非常古老的访问方法,包括document.imagesdocument.all,以及其他一些我不记得的内容。

访问document.forms[1]的头号缺陷很简单:如果在目标网页之前将另一个表单添加到页面会怎么样?突然之间,您必须搜索所有代码以获取对任何内容的引用,并进行更改。

这就是ID的来源。通过仅允许页面上的每个ID之一,getElementById每次都可以准确地检索它,而无需关心同时文档发生的情况。唯一重要的变化是完全删除元素。

答案 1 :(得分:1)

您可以使用 document.object_name 来查找主播,小程序,嵌入,表单,图片,链接和插件。

要查找div,span等HTML元素,你必须使用选择器。你可以按元素名称,id,类等获得这些元素。

答案 2 :(得分:0)

在示例中访问div的最简单方法是通过“窗口对象上的命名访问”功能(http://www.whatwg.org/specs/web-apps/current-work/#named-access-on-the-window-object):

而不是

<body onload="document.getElementById('div1').innerHTML='hi';">

你可以使用

<body onload="div1.innerHTML='hi';">

请注意,“div1”是窗口对象的属性,而不是文档对象的属性。