为什么只能用点表示法引用表单?

Mag*_*s W 4 html javascript syntax dom

这似乎是一个简单的初学者问题,但我无法在任何地方找到答案.

假设我有这个HTML:

<form name="myForm">
   <input type="text" name="myTxt">
</form>
Run Code Online (Sandbox Code Playgroud)

然后我可以使用以下javascript

document.myForm.myTxt.value = 'foo';
Run Code Online (Sandbox Code Playgroud)

但是,如果我有一个div而不是一个表格怎么办?

<div name="myDiv">
   <span name="mySpan"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

为什么我不能在这里做同样的事情,比如

document.myDiv.mySpan.innerHTML = "bar";
Run Code Online (Sandbox Code Playgroud)

似乎应该可以这样做,而不是必须使用getELementById(),但我不能使它工作.

jer*_*emy 5

由W3C设计.

真的没有什么可争论的.您可以访问页面上所有表单的HTMLCollection document.forms,就像您可以使用图像document.images,applet document.applets,链接document.links和锚点一样document.anchors.

http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-1689064