【问题标题】:Is it better to access DOM elements with IDs or objects?使用 ID 或对象访问 DOM 元素会更好吗?
【发布时间】:2012-02-02 03:10:18
【问题描述】:

给定这样的 HTML:

<body>
<form name="myForm" action="savedata.php" method="post">
  <input type="text" name="myName" />
</form>
</body>

像这样使用document.getElementById, I would acces the input calledmyName`:

var getName = document.getElementById('myName').value;

但是,相反,我知道我可以做到,而且我更喜欢它:

var getName = document.myForm.myName.value;

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

【问题讨论】:

  • WHAT 是你的问题吗?而 WHAT(WHAT?)

标签: javascript html object


【解决方案1】:

首先,您的第一段“DOM”代码是错误的。 getElementById('myName'); 不会得到你想要的元素,因为它没有 id - 只有一个 name 属性。同样,我不相信您的树导航第二位代码会起作用,因为元素是由id 存储的,而不是由name 存储的。

现在,忽略这一点,您发布的两个示例都是“DOM”。您有一个结构为节点对象树的文档。您正在导航它。之前的sn-p(如果写得正确的话)只是一种更标准的访问方式。

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

为了说明我的观点,假设您将input 元素放在div 中。使用getElementById 的代码仍然可以工作。向下导航树的代码不会,因为它没有属性-get 来通过新的中间元素。因此,您已将您的逻辑与您的显示相结合——这就是代码的味道。

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

【讨论】:

  • 对不起,我忘了给 添加 id,所以,它会是
猜你喜欢
  • 2023-03-15
  • 2010-11-11
  • 2016-09-05
  • 2019-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 2018-01-30
相关资源
最近更新 更多