JavaScript getElementByName 不起作用

Posted

技术标签:

【中文标题】JavaScript getElementByName 不起作用【英文标题】:JavaScript getElementByName doesn't work 【发布时间】:2022-01-20 13:36:33 【问题描述】:

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

【问题讨论】:

在这里查看答案***.com/questions/278719/getelementsbyname-in-ie7 getElementsByName in IE7的可能重复 【参考方案1】:

它是 getElementsByName 。注意复数。它返回具有 name 属性的元素的类似数组的 NodeList。

【讨论】:

【参考方案2】:

getElementsByName 存在,它返回元素的集合。如果您只打算找到一个:

document.getElementsByName("hi")[0].setAttribute("value", "my value is high");

编辑:a,HTML 那里(在编辑之前没有看到)。 HTML 中没有 'hi' 元素,可能在某些 XML 格式中...

【讨论】:

你们摇滚。 getElementsByName("hi")[0] 工作得很好!谢谢你。现在我知道只有 getElementById 不是复数,因为 id 是唯一的。 'hi' 不是标签名称。它只是我在脚本中设置的 input'para' 的名称属性 呵呵,我的错,把它和getElementsByTagName()搞混了:)【参考方案3】:

不是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>

【讨论】:

【参考方案4】:

另外,我发现必须声明文档类型才能使 getelementsbyname 工作。

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

【讨论】:

以上是关于JavaScript getElementByName 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

javascript JavaScript isset()等效: - JavaScript

JavaScript 使用JavaScript更改CSS(JavaScript)

JavaScript之基础-1 JavaScript(概述基础语法)

前端基础-JavaScript的基本概述和语法

JavaScript

JavaScript