这是我的JavaScript代码:
<script>
function change(name){
var element = document.all.name.value;
}
</script>
它返回错误。如何将元素名称传递给函数以更改其值?
答案 0 :(得分:7)
快速修复:
var element = document.all[name].value;
但请记住,这会获得价值,而不是元素本身。要获取元素,然后更改值,请执行:
var element = document.all[name];
element.value = 'whee';
此外,您应该考虑使用其他方式来访问元素而不是document.all
。查看使用ID而不是document.getElementById()
函数的名称。请参阅此JavaScript best practices列表。
作为Peter Bailey points out in his answer,许多HTML元素可以具有相同的名称。这是document.getElementById()
更可取的一个原因:元素ID是唯一的(当然,在有效的HTML中)。
答案 1 :(得分:2)
如果“name”表示“name属性”,则必须了解名称不是HTML文档的唯一名称。他们需要背景。
虽然您可以使用document.all
- 这是非标准的,但仅适用于IE。使用更加跨浏览器的友好机制会更好。
通常,名称属性属于表单中的元素,例如<input/>
和<select>
元素。这些元素的名称作为DOM中<form>
的{{1}}属性的属性公开。
如果您可以访问表单的DOM对象,那么您也可以访问其元素的DOM对象。
一个例子
elements