这是我正在尝试的代码,DOM结构将是相同的。DOM是动态加载的,这就是为什么我正在尝试文档单击。我们需要获得当前单击框的颜色。使用jQuery很容易,无法在javaScript中找到解决方案。有人可以帮助解决这个问题吗?
document.addEventListener("click", function(e){
const CTABtn = e.target.closest(".btn");
if(CTABtn){
alert('the color of the box');
}
});
.container{
display:flex;
flex-wrap:wrap;
justify-content:space-evenly;
}
.box{
border:1px solid black;
padding:5px;
}
<div class="container">
<div class="box">
<div>
<h1>Red</h1>
</div>
<div>
<button class="btn">CTA</button>
</div>
</div>
<div class="box">
<div>
<h1>Green</h1>
</div>
<div>
<button class="btn">CTA</button>
</div>
</div>
<div class="box">
<div>
<h1>Blue</h1>
</div>
<div>
<button class="btn">Blue</button>
</div>
</div>
</div>
3条答案
按热度按时间tnkciper1#
如果您只是将颜色作为数据属性添加到按钮上,这将容易得多。
有多种方法可以完成您想做的事情,您可以访问父级并获取子级或引用同级
一个一个三个一个一个一个一个一个四个一个一个一个一个一个五个一个
kiayqfof2#
使用
closest
是正确的,但是您要做的是找到包含.box
(而不是.btn
)的最近的元素,然后从那里找到框中的h1
元素以从中获取文本:x一个一个一个一个x一个一个二个一个x一个一个三个一个
4c8rllxm3#
还有另一种,但更复杂的方法: