You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发猜盒游戏:如何获取被点击的div元素?

猜盒子游戏:获取被点击的div元素方法

你可以通过以下两种常用方法获取被点击的div盒子,同时还能优化你现有的代码写法:

一、优化盒子元素的获取(替代逐个getElementById)

不用单独定义每个box变量,直接通过类名批量获取所有盒子元素,代码更简洁:

// 获取所有带box类的元素,返回NodeList,可直接遍历
const boxes = document.querySelectorAll('.box');
// 生成随机数范围自动适配盒子数量
const randomNum = Math.floor(Math.random() * boxes.length);
// 正确盒子
const correctBox = boxes[randomNum];

二、获取被点击元素的两种实现方式

方式1:给每个盒子绑定点击事件

遍历所有盒子,为每个盒子添加点击事件,通过事件对象的target属性(或函数内的this)获取被点击元素:

boxes.forEach(box => {
  box.addEventListener('click', function(e) {
    // e.target 就是被点击的div元素
    const clickedBox = e.target;
    // 判断是否为正确盒子
    if (clickedBox === correctBox) {
      alert('猜对了!');
    } else {
      alert('猜错了,再试试!');
    }
  });
});

注:如果用箭头函数,this不会指向被点击元素,所以这里用普通函数更稳妥。

方式2:事件委托(推荐)

给父容器wrapper绑定一个点击事件,通过事件冒泡判断点击的是否为盒子元素,这种方式更高效,尤其适合盒子数量多或动态生成的场景:

const wrapper = document.querySelector('.wrapper');
wrapper.addEventListener('click', function(e) {
  // 验证点击的元素是盒子
  if (e.target.classList.contains('box')) {
    const clickedBox = e.target;
    if (clickedBox === correctBox) {
      alert('猜对了!');
    } else {
      alert('猜错了,再试试!');
    }
  }
});

内容的提问来源于stack exchange,提问作者Ahmed salem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:43:21