这个简单的JS无法设置“para”的值。我猜getElementByName不起作用。但为什么?
<script>
function fn()
{
document.getElementById("para").setAttribute("name","hi");
document.getElementByName("hi").setAttribute("value","my value is high");
}
</script>
HTML:
<input type="button" onClick="fn()" value="click me">
<input id="para" type="text" />
答案 0 :(得分:44)
这是getElementsByName
。注意复数。它返回一个类似于数组的NodeList,其元素具有name
属性。
答案 1 :(得分:10)
getElementsByName
,它返回元素的集合。如果你打算只找到一个:
document.getElementsByName("hi")[0].setAttribute("value", "my value is high");
编辑:a,HTML那里(在编辑之前没有看到)。 HTML中没有“hi”元素,可能采用某种XML格式......
答案 2 :(得分:2)
不是getElementByName
而是getElementsByName
,它会返回数组。
<html>
<head>
<script language="javascript">
function fn() {
document.getElementById("para").setAttribute("name","hi");
x = document.getElementsByName("hi");
x[0].setAttribute("value","my value is high");
}
</script>
</head>
<body onload="fn()">
<input type="text" id="para" />
</body>
</html>
答案 3 :(得分:1)
另外,我发现必须声明文档类型以使getelementsbyname起作用。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">