javascript - 如何在 for 循环中将 textContent 修复为未定义?

标签 javascript html for-loop undefined

当我运行下面的代码时,它显示“无法读取未定义的属性‘textContent’”。甚至 onclick、addEventListener、length 等等都说未定义!我该如何解决这个问题?

代码如下:

<div id = "dropdown-content" class = "d-con">
    <a href = "#">America</a>
    <a href = "#">Canada</a>
    <a href = "#">Rio</a>
</div>

和 javaScript:

(function(){
    var i;
    var dropdown = document.getElementsByClassName('d-con');
    for(i = 0; i <= dropdown.length; i = i + 1){
        alert(dropdown[i].textContent);
    }
}()); 

最佳答案

这里你唯一的问题是你的 i柜台到达dropdown.lengthdropdown[dropdown.length]undefined ,换句话说,您正在尝试访问 undefined dropdown 中的元素大批。

这就是为什么您的代码在尝试访问此 undefined 时警告前 3 个元素然后抛出错误的原因元素。

解决方案:

for循环你的条件应该是i < dropdown.length而不是 i <= dropdown.length .

(function() {
  var i;
  var dropdown = document.getElementsByClassName('d-con');
  for (i = 0; i < dropdown.length; i++) {
    alert(dropdown[i].textContent);
  }
}());

演示:

(function() {
  var i;
  var dropdown = document.getElementsByClassName('d-con');
  for (i = 0; i < dropdown.length; i++) {
    alert(dropdown[i].textContent);
  }
}());
<div id="dropdown-content" class="d-con">
  <a href="#">America</a>
  <a href="#">Canada</a>
  <a href="#">Rio</a>
</div>

关于javascript - 如何在 for 循环中将 textContent 修复为未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44899227/

相关文章:

javascript - 加载大量图像

javascript - ReactJS 显示项目列表

javascript - 使用 CSS 禁用 onclick::可能吗?

jquery - 自动调整圆 Angular 输入框的大小?

bash - 如何检查 bash for 循环中的不平等?

Javascript 在异步循环结束时执行

php - PHP 中的 while(true) 和 for(;;) 有什么区别?

javascript - 尝试从外部 JS 文件调用函数

javascript - 使用变量值设置 slider 拇指高度

javascript - 如何无限重复javascript setInterval计时器两次