给出这样的HTML:
<body>
<form name="myForm" action="savedata.php" method="post">
<input type="text" name="myName" />
</form>
</body>
像这样使用document.getElementById, I would acces the input called
myName:
var getName = document.getElementById('myName').value;
但是,相反,我知道我可以做到这一点,我更喜欢它:
var getName = document.myForm.myName.value;
第二种方法有办法吗?并且,是否可以使用myForm.myName
或我应该使用getElementById
?
答案 0 :(得分:2)
首先,您的第一个“DOM”代码是错误的。 getElementById('myName');
不会获得您想要的元素,因为它没有id
- 只有name
属性。同样,我不相信您的树导航第二位代码将起作用,因为元素由id
存储,而不是name
。
现在,驳回这一点,你发布的两个例子都是“DOM”。您有一个结构化为节点对象树的文档。你正在这样导航它。前片段(如果要正确编写)只是一种更标准的访问方式。
至于应该做什么(我假设您从标签中特别询问JavaScript代码):无论哪种方式都有效。第一个想法(只要它使用getElementById
)是更好的,因为你的文档结构的变化不会破坏它,但如果你是谁将扫除破碎的玻璃,那就是你的所有节目。
为了说明我的观点,我们假设您将input
元素放在div
中。使用getElementById
的代码仍然可以使用。向下导航树的代码不会,因为它没有属性 - 可以通过新的介入元素。因此,您已将逻辑耦合到显示器 - 这就是代码味道。
如果您还不知道,请查看jQuery;它和类似的库使JavaScript成为一种更加愉快的语言。