Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我试图通过类名访问javascript创建的类元素时,为什么这些元素没有定义?_Javascript - Fatal编程技术网

当我试图通过类名访问javascript创建的类元素时,为什么这些元素没有定义?

当我试图通过类名访问javascript创建的类元素时,为什么这些元素没有定义?,javascript,Javascript,我用javascript创建了一个链接节点,将其附加到正文中,并给它一个“heart”类 它们在浏览器中可见,当我检查时,我可以看到它们的类名为“heart” 但是,当我尝试通过方法getElementsByClassName和console.log()访问它们的结果时,它会将它们全部返回为undefined,就好像它们不存在一样 这是我的全部代码: body.appendChild(imagebox); for(var i=9;i我认为应该在for循环中插入body.appendChild(

我用javascript创建了一个链接节点,将其附加到
正文中,并给它一个“heart”类

它们在浏览器中可见,当我检查时,我可以看到它们的类名为“heart”

但是,当我尝试通过方法
getElementsByClassName
console.log()
访问它们的结果时,它会将它们全部返回为
undefined
,就好像它们不存在一样

这是我的全部代码:

body.appendChild(imagebox);

for(var i=9;i我认为应该在for循环中插入body.appendChild(imagebox)

const body = document.querySelector('body');
    for (var i = 9; i <= 16; i++) {
      var imagebox = document.createElement("div");
      imagebox.classList.add("imagebox");
      var heart = document.createElement("a");
      heart.innerHTML = "&#10084;";
      heart.classList.add("heart");
      imagebox.appendChild(heart);
      body.appendChild(imagebox);
    }
    var hearts = document.getElementsByClassName("heart");
    console.log(hearts[9]);
const body=document.querySelector('body');

因为(var i=9;我解决了这个问题,尽管我不明白,如果有人能解释一下为什么这样做会很好


整个javascript代码都在文件all_product.js中,在该文件i中,这个javascript代码用window.addEventListener(“scroll”,function(){})包装,在这里我创建了这个循环和链接;在页面底部,它不起作用,但当我放入window.addEventListener时,它正常工作。

在您的代码中:如果它在同一块中,您可以通过变量
heart
直接访问元素。无需梳理DOM。您能提供更多的代码吗请提供问题的正确答案,而不仅仅是行f缺乏上下文的代码。前面有一行代码是我忘记写的,在第一行代码之前也是:var heart=document.createElement(“a”);我的项目非常大,要给它一个完整的画面,新来的人需要几个小时才能掌握它,我知道哪一个是问题所在,我会尽可能地压缩它,给出一个可重复的例子:这是因为当页面加载时,滚动事件没有触发,所以没有元素添加到DOM中。滚动之后,心被添加,so此后您将能够访问这些元素。感谢您的解释!