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 工作。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
【讨论】:
以上是关于JavaScript getElementByName 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
javascript JavaScript isset()等效: - JavaScript
JavaScript 使用JavaScript更改CSS(JavaScript)