首页 > 解决方案 > 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>

标签: javascripthtmldom

解决方案


您的问题可能是您没有等到文档加载。将其插入到您的脚本标签中:

window.onload = function() {
   //Insert your code here
}

或者让你的脚本成为一个模块,这样它就会被推迟

<script type='module'>
    //Insert code here
</script>

推荐阅读