Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用ID或对象访问DOM元素更好吗?_Javascript_Html_Object - Fatal编程技术网

Javascript 使用ID或对象访问DOM元素更好吗?

Javascript 使用ID或对象访问DOM元素更好吗?,javascript,html,object,Javascript,Html,Object,给定如下HTML: <body> <form name="myForm" action="savedata.php" method="post"> <input type="text" name="myName" /> </form> </body> var getName = document.getElementById('myName').value; 但是,相反,我知道我可以做到这一点,而且我更喜欢它: var getN

给定如下HTML:

<body>
<form name="myForm" action="savedata.php" method="post">
  <input type="text" name="myName" />
</form>
</body>
var getName = document.getElementById('myName').value;
但是,相反,我知道我可以做到这一点,而且我更喜欢它:

var getName = document.myForm.myName.value;

第二种方法有办法吗?而且,使用
myForm.myName可以吗?还是应该使用
getElementById

首先,您的第一位“DOM”代码是错误的<代码>getElementById('myName')
不会得到您想要的元素,因为它没有
id
——只有
name
属性。类似地,我认为您的树导航第二位代码不会起作用,因为元素是通过
id
存储的,而不是通过
name
存储的

现在,不管怎样,您发布的两个示例都是“DOM”。您有一个文档,其结构为节点对象树。你就是这样导航的。前一个代码片段(如果编写正确的话)只是一种更标准的访问方式

至于您应该做什么(我从您特别询问的关于JavaScript代码的标记中假设):任何一种方法都有效。第一个想法(就它使用的
getElementById
)更好,因为文档结构的更改不会破坏它,但是如果是你来清理碎玻璃,那就全是你的表演了

为了说明我的观点,假设您将
input
元素放在
div
中。使用getElementById的代码仍然有效。向下导航树的代码不会这样做,因为它没有属性get来遍历新的中间元素。因此,您已经将您的逻辑与您的显示相耦合——这是一种代码气味


如果你还不知道的话,看看吧;它和类似的库使JavaScript成为一种更令人愉快的开发语言。

您的问题是什么??什么是
(什么?
对不起,我忘了添加id到,所以,它将是