JavaScript getElementByName不起作用

时间:2010-06-05 14:57:25

标签: javascript

这个简单的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" />

4 个答案:

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