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

时间:2012-08-18 16:34:32

标签: javascript html dom syntax

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

假设我有这个HTML:

<form name="myForm">
   <input type="text" name="myTxt">
</form>

然后我可以使用以下javascript

document.myForm.myTxt.value = 'foo';

但是如果我有一个div而不是一个表单呢?

<div name="myDiv">
   <span name="mySpan"></span>
</div>

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

document.myDiv.mySpan.innerHTML = "bar";

似乎应该可以这样做,而不必使用getELementById(),但我无法使其工作。

2 个答案:

答案 0 :(得分:5)

由W3C设计。

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

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

答案 1 :(得分:0)

您发布的语法是表单,具体为..它只适用于表单..

您需要使用以下行来使其适用于div ...

document.getElementsByName("myDiv")[0].getElementsByTagName("span")[0].innerHTML = "bar";

还有其他方法可以做到这一点......