以下这两种语法之间的区别是什么 -
document.object
和 document.getElementById()
。
我想知道何时使用哪种语法 ???
e.g .-
<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
中的语法都以相同的方式工作。但这不适用于以下内容 -
<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()`**适用于两者。那我什么时候应该使用哪一个?
有人请强调两种语法之间的差异。
提前完成了......
答案 0 :(得分:3)
document.forms
是一种非常古老的访问方法,包括document.images
和document.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”是窗口对象的属性,而不是文档对象的属性。