【问题标题】:Array Index Value Undefined, Array Isn't数组索引值未定义,数组未定义
【发布时间】:2016-05-03 04:23:56
【问题描述】:

如果您需要更多背景信息,请询问。

Javascript:

<script type="text/javascript>
var buttons = document.getElementsByClassName("_jvpff");
console.log(buttons);
console.log(buttons[0]); //added after error from command below
console.log(buttons[0].innerHTML);
</script>

控制台:

HTML:

数组包含有效元素,但是当尝试访问具有索引的元素时,它返回未定义。

谢谢。

【问题讨论】:

  • 对我来说工作得很好...jsfiddle.net/rayon_1990/z3p3aa7r
  • @torazaburo document.getElementsByClassName 返回一个 LIVE HTML 节点列表,该列表会随着元素可用而更新,并且控制台对于 when 评估对象的内容和更新。如果button[0] 在尝试访问它时是undefined,那么当时它是undefined
  • @deceze,就是这样 - 你为什么不把它写成答案?
  • @TomBurris 我敢打赌它是。 :) 如果您以前没有见过这种控制台行为,您会感到惊讶。
  • 由于 react 是动态的,如果您只是在页面上包含该脚本,那么当该脚本运行时您的元素很可能不存在。

标签: javascript arrays console


【解决方案1】:

document.getElementsByClassName 返回一个 live HTMLNodeList,它会随着元素可用而更新,并且当对象的内容被评估和更新时,控制台有自己的怪癖。如果在尝试访问它时button[0]undefined,那么当时它是undefined。这意味着您需要等待脚本执行,直到 DOM 准备好并且元素实际存在。要么将你的脚本放在页面底部,要么通过监听 DOMContentLoaded 事件等待 DOM 准备就绪。

【讨论】:

    猜你喜欢
    • 2012-12-08
    • 2015-12-15
    • 2011-08-15
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    相关资源
    最近更新 更多