【发布时间】:2016-11-29 07:46:08
【问题描述】:
有人可以解释为什么我的代码不起作用!
当我通过 Id 获取元素时,它工作得非常好。但是与 getElementsByTagName() 相同的方法却没有。
另外,如果我使用 querySelector(),它可以工作。但是,如果我使用 querySelectorAll(),则会返回相同的错误。
test.html:15 Uncaught TypeError: Cannot set property 'color' of undefined
这是我的代码:
<DOCTYPE! html>
<html>
<head>
</head>
<body>
<h1>Hello World</h1>
<p id="par">Hello World</p>
<script>
var par = document.getElementById('par');
par.style.color = "red"
var heading = document.getElementsByTagName("h1");
heading.style.color = "red"
</script>
</body>
</html>
【问题讨论】:
-
heading[0].style.color = "red" -
您阅读文档了吗?一些例程返回单个项目,其他例程返回一个列表。另外,请更正问题标题中的错字。
-
如果函数名不够清楚:
getElementSSSSByTagName而getElementById没有's' -
stackoverflow.com/questions/12135403/… 应该有更好的骗子,但我只能找到这些
-
让我们看看,我确定您打开了控制台,并看到了错误,即“无法读取未定义的属性 'color'”。这显然意味着
heading.style未定义。要了解原因,请使用您熟悉的开发工具控制台检查变量heading。你会看到它是一个array,它显然没有style属性——它的elements(比如heading[0])有。这是基本的调试,如果您希望创建一个有意义的应用程序,而不是每次遇到小问题时都询问 SO 问题,那么您将需要学习它。
标签: javascript dom getelementsbytagname selectors-api