gpt4 book ai didi

显示为 0 长度的 Javascript HTML 集合

转载 作者:可可西里 更新时间:2023-11-01 01:21:42 24 4
gpt4 key购买 nike

  var eval_table = document.getElementsByClassName("evaluation_table");
console.log(eval_table);

这显示为:

[item: function, namedItem: function]0: 
table.widefat.fixed.evaluation_table
length: 1
__proto__: HTMLCollection

但是,当我尝试获取 eval_table 的长度时,eval_table.length 返回值 0。我以前用过这种方法,以前没有遇到过这种方法的问题。我上面想要达到的目标有什么问题吗?

最佳答案

这是因为你的 JS 在元素被渲染到 DOM 之前就已经运行了。我打赌你运行的脚本是在 <body> 之前加载的你的 html。您有两个选择:

  1. 添加自执行<script>作为你 <body> 中的最后一件事标记或;
  2. 包装您的函数,使其在执行前等待加载 DOM。您可以使用以下任一方式执行此操作:
    • jQuery 的 $(document).ready
    • 如果您没有运行 jQuery:document.addEventListener("DOMContentLoaded", function(e) {// do stuff })

下面的代码示例:

<html>
<head></head>
<script>
document.addEventListener("DOMContentLoaded", function(e) {
var eval_table = document.getElementsByClassName('evaluation_table');
console.log(eval_table, eval_table.length);
});
</script>
<body>
<div class="evaluation_table"></div>
<div class="evaluation_table"></div>
<div class="evaluation_table"></div>
<div class="evaluation_table"></div>
</body>
</html>

关于显示为 0 长度的 Javascript HTML 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30211605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com