javascript - 为什么控制台给我未定义的结果
问题描述
我不知道为什么我的控制台告诉我结果未定义。我正在学习 DOM 并在我的第一个代码中发现了我不理解的问题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
let head = document.getElementsByClassName(".main");
console.log(head.textContent);
let tail = document.getElementsByTagName("p");
console.log(tail.textContent);
</script>
</head>
<body>
<div class="main">
<p>hello</p>
</div>
</body>
</html>
解决方案
- 当脚本在 head 中运行时,这些元素不存在。将脚本移动到元素之后
- 从更改
.main
为main
getElementsByClassName
getElementsByClassName
返回一个列表,因此添加[0]
到getElementsByClassName("main")
以获取第一个元素
<div class="main">
<p>hello</p>
</div>
<script>
let head = document.getElementsByClassName("main")[0];
console.log(head.textContent);
let tail = document.getElementsByTagName("p")[0];
console.log(tail.textContent);
</script>
推荐阅读
- php - MySQL更新表与faker生成的结果
- python-3.x - 获取所有值 python+selenium
- php - Docker - 未创建 mysql 用户
- javascript - Intl.NumberFormat 样式货币不适用于智利
- ruby-on-rails - 如何实现 has_and_belongs_to_many 关联?
- xml - 如何确定 XML 文件的字符编码
- python-3.x - pygame中翻转和更新之间的性能
- asp.net-core - 使用 IdentityServer4 的 SSO 是否应该在每个请求上点击授权端点?
- signalr - Azure Signal R 如何处理应用程序服务器缩放?
- angular - 从角度打字稿数组中选择默认选项值