javascript - 元素内任何 div 的 querySelectorAll
问题描述
我希望这会为我在部分 id 内单击的任何 div 弹出警报playGrid
,但它什么也不做。
<div id="playGrid" class="w">
<section>
<div id="0_0"></div>
<div id="0_1"></div>
<div id="0_2"></div>
<div id="0_3"></div>
<div id="1_0"></div>
<div id="1_1"></div>
<div id="1_2"></div>
<div id="1_3"></div>
<div id="2_0"></div>
<div id="2_1"></div>
<div id="2_2"></div>
<div id="2_3"></div>
<div id="3_0"></div>
<div id="3_1"></div>
<div id="3_2"></div>
<div id="3_3"></div>
</section>
</div>
JavaScript
document.getElementById("playGrid").querySelectorAll('section div').forEach(function(el){
el.addEventListener('click', function() {
alert(this.id);
});
});
解决方案
我认为问题在于您的代码在文档完全加载之前运行。要在页面加载后运行您的代码,请为“DOMContentLoaded”事件添加事件侦听器:
document.addEventListener('DOMContentLoaded', function(){
document.getElementById("playGrid").querySelectorAll('section div').forEach(function(el) {
el.addEventListener('click', function() {
alert(this.id);
});
});
});
推荐阅读
- sql - SQL Union 和 Group By(按特定值分组但显示全部)
- r - R:如何使用 apply 循环遍历 data.frame 中的变量
- javascript - Javascript 将希伯来语单词和标点符号包装在单独的跨度标签中
- c++ - 如何从具有图像的按钮中检索图像源文件名?
- javascript - 客户端路由 vanilla JS
- ios - Iphone 5/Iphone 6/Iphone 7/Iphone X 的视口大小是多少
- datatables - jQuery 无法捕获 Laravel 中的 DataTable 按钮类
- ios - 如何在集合单元格中重绘动态大小的 UIView
- python - SelectKBest(chi2, k=5).fit(x_train, y_train) 如何计算得分?
- apache-spark - 如何在 Neo4j 中使用 Spark?