接收元素的名称作为对象

时间:2010-04-06 18:45:23

标签: javascript object element

这是我的JavaScript代码:

<script>
function change(name){
    var element = document.all.name.value;
}
</script>

它返回错误。如何将元素名称传递给函数以更改其值?

2 个答案:

答案 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