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