javascript - document.getElementsByClassName 返回 undefined 尽管 HTML 文档中有该类
问题描述
我有一个在按下按钮后调用的 javascript 函数。我正在尝试获取某个类的第一个(也是唯一一个)元素的 id。它返回未定义,但我知道它就在那里,因为它的样式有效。var currentId = document.getElementsByClassName('item1')[0].id;
返回一个 id,但是返回var whereKey = document.getElementsByClassName('key')[0].id;
undefined。
function runOnButton() {
var currentId = document.getElementsByClassName('item1')[0].id;
var whereKey = document.getElementsByClassName('key')[0].id;
console.log(whereKey);
if (currentId == whereKey) {
//do stuff
return true;
} else {
//do stuff
return false;
}
}
runOnButton();
<div id="12" class="key"></div>
<div id="13" class="item1"></div>
解决方案
您的问题可能是您没有等到文档加载。将其插入到您的脚本标签中:
window.onload = function() {
//Insert your code here
}
或者让你的脚本成为一个模块,这样它就会被推迟
<script type='module'>
//Insert code here
</script>
推荐阅读
- flutter - 在 IOS 上运行 Flutter 应用程序
- jquery - 在包含在变量中的 div 元素中选择锚标记
- c++ - 为什么我的项目/VS/任务管理器都显示不同的内存使用情况?C++
- javascript - 无法找到或构建 blob:预期可附加,得到 #
- html - 如何读取 DATABASES 并将其修改为 HTML 文件?
- javascript - 使用 nightwatch.js 导航上下文菜单?
- qt - QKeyEvent.nativeModifiers() 是什么?
- html - 当 Webview 重定向到 Flutter 中的另一个页面时获取 Json 响应
- r - Shiny DT 回调帮助 - 向 DT 添加交互式刻度/交叉
- ios - 使用 NSUserDefaults 阅读 SharedPreference 以了解颤振