第二个警报命令的代码按预期工作(显示元素“to”的值,但是第一个警告命令不起作用(它应该做同样的事情)。为什么会这样?
<html>
<head>
<script type="text/javascript">
function getValue()
{
alert(document.getElementsByName("to").value);
alert(document.forms[0].to.value);
}
</script>
</head>
<body>
<form>
<input name="to" type="hidden" value="hoolah" />
<input type="button" onclick="getValue()" value="Get Value!" />
<form/>
</body>
</html>
答案 0 :(得分:17)
getElementsByName
会返回HTMLCollection
。您可以访问第一项的值,如下所示:
document.getElementsByName("to").item(0).value
或者像这样:
document.getElementsByName("to")[0].value
更多信息:
答案 1 :(得分:3)
getElementsByName
返回具有给定名称的所有元素。这意味着可以有多个。
如果你想得到第一个元素的值:
document.getElementsByName("to")[0].value
答案 2 :(得分:0)
那是因为它将元素放入数组中,请尝试这个例子:
function getValues(objName)
{
var arr = new Array();
arr = document.getElementsByName(objName);
alert("total objects with name \"textfield\" = \n" + arr.length);
for(var i = 0; i < arr.length; i++)
{
var obj = document.getElementsByName(objName).item(i);
alert(obj.id + " = " + obj.value);
}
}