将元素的名称作为对象接收
这是我的 JavaScript 代码:
<script>
function change(name){
var element = document.all.name.value;
}
</script>
它返回一个错误。如何将元素的名称传递给函数以更改其值?
This is my JavaScript code:
<script>
function change(name){
var element = document.all.name.value;
}
</script>
It returns an error. How to pass to the function the element's name in order to change its value?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
快速修复:
但请记住,这是获取值,而不是元素本身。要获取元素,然后更改值,请执行以下操作:
另外,您应该考虑使用另一种方式来访问元素,而不是
document.all
。考虑通过document.getElementById()
函数使用 ID 而不是名称。请参阅此 JavaScript 最佳实践列表。正如 Peter Bailey 在他的回答中指出 ,许多 HTML 元素可以具有相同的名称。这就是
document.getElementById()
更可取的原因之一:元素 ID 是唯一的(当然,在有效的 HTML 中)。For a quick fix:
But keep in mind this gets the value, not the element itself. To get the element, then change the value, do:
Also, you should consider using another way to access the elements instead of
document.all
. Look into using IDs instead of names with thedocument.getElementById()
function. See this JavaScript best practices list.As Peter Bailey points out in his answer, many HTML elements can have the same name. This is one reason why
document.getElementById()
is preferable: element IDs are unique (in valid HTML, of course).如果您所说的“名称”是指“名称属性”,那么您必须了解名称对于 HTML 文档来说并不是唯一的。他们需要背景。
虽然您可以使用
document.all
- 这是非标准的并且仅适用于 IE。使用更跨浏览器友好的机制会更好。通常,名称属性属于表单中的元素,例如
和
如果您可以访问表单的 DOM 对象,那么您也可以访问其元素的 DOM 对象。
一个例子
If by "name" you mean "name attribute", you have to understand that names are not unique to an HTML document. They need context.
Although you can use
document.all
- that is non-standard and only works in IE. You'll be better off using a more cross-browser friendly mechanism.Typically, name attributes will belong to elements in a form, such as
<input/>
and<select>
elements. The names of these elements are exposed as properties of the<form>
'selements
property in the DOM.If you can get access to the form's DOM object, then you can access its elements' DOM objects too.
An example