如何处理“TypeError: document.getElementByName is not a function”

问题描述 投票:0回答:4
javascript html dom
4个回答
4
投票

脚本在

document.getElementByName("myname").innerHTML = 'Whats';
行失败,因为
getElementByName
不是函数,当脚本尝试调用它时会出错。正确的名字是
getElementsByName
;元素s
getElementsByTagName
同样。

此外,这两个函数都返回元素列表而不是单个元素。因此,在这里,您想要使用

[0]
来获取该列表中的第一个元素,然后以这种方式使用它:

document.getElementsByName("myname")[0].innerHTML = 'Whats';

使用 F12Ctrl+Shift+I(取决于浏览器)打开浏览器控制台以查看错误,并查阅文档(例如,来自我链接的网站)以确保您正在使用正确的功能。


2
投票

修改如下,就可以了

document.getElementById("myid").innerHTML = 'hey';  
document.getElementsByName("myname")[0].innerHTML = 'Whats'; 
document.getElementsByTagName("p")[0].innerHTML = 'up! ';
document.querySelector("p#myid").innerHTML = 'Dude.';

2
投票

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {
	debugger;
    document.getElementById("myid").innerHTML = 'hey';
    document.getElementsByName("myname").innerHTML = 'Whats';
    document.getElementsByTagName("p").innerHTML = 'up! ';
    document.querySelector("p#myid").innerHTML = 'Dude.';
}
</script>
</head>
<body>

<p id="myid" name="myname">This text will be changed after button click.</p>

<button onclick="myFunction()">Try it</button>

</body>
</html> 

这里你写了 document.getElementByName("myname").innerHTML = 'Whats'; 这是不正确的,它必须是 document.getElementsByName("myname").innerHTML = 'Whats';试试这个它有效。 仅供参考 document.getElementsByName 返回具有相同名称的元素数组。


1
投票

我确信

document.querySelectorAll
document.getElementsByClassName
document.getElementsByTagName
将返回一个 NodeList 对象。但是,
document.querySelector
应返回给定上下文(文档)中该元素的第一个匹配项。

© www.soinside.com 2019 - 2024. All rights reserved.