简单的javascript,可以知道表单元格中单击了哪个单元格

简单的javascript,可以知道表单元格中单击了哪个单元格,javascript,html,html-table,Javascript,Html,Html Table,我正在写一个数独html页面,只想知道点击了哪个单元格。事实证明这相当困难。这张桌子只是: 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 每个单元格都有一个事件侦听器,如下所示: addEventListener('click', pickSquare); function pickSquare() { // clear old selection

我正在写一个数独html页面,只想知道点击了哪个单元格。事实证明这相当困难。这张桌子只是:


000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
每个单元格都有一个事件侦听器,如下所示:

addEventListener('click', pickSquare);

function pickSquare() {
    // clear old selection
    prev_selected = document.getElementsByClassName("selected");

    for (i = 0; i < prev_selected.length; i++)  {
        prev_selected[i].className = prev_selected[i].className.replace(" selected", "");
    }

    this.className += " selected";
    editing = this;
}
addEventListener('click',pickSquare);
函数pickSquare(){
//清除旧选择
prev_selected=document.getElementsByClassName(“selected”);
对于(i=0;i

这使我可以访问单元格,以便更改值等,但我的困难是计算单元格编号,以便添加一些加法逻辑。我想用JavaScript来实现这一点,因为这正是我目前试图自学的内容。

由于JS事件会冒泡到父元素,因此您可以在
元素上使用单个事件侦听器,并访问
event.target
属性来查找单击的元素。然后我们可以使用
element.cellIndex
element.parentElement.rowIndex
表中查找X和Y坐标

document.querySelector(“#数独”)
.addEventListener('单击',(ev)=>{
常数[x,y]=[
ev.target.cellIndex,
ev.target.parentElement.rowIndex
];
如果(x==未定义| | y==未定义){
//单击单元格之间的间距
返回;
}
控制台日志(x,y);
});

000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000

表格单元格有一个
cellIndex
属性,表格行元素有
rowIndex
。考虑使用接口,而不是手动操作<代码> CordNeX<代码> .>代码>文档.GETelEntsByCalpNeX(“选择”)是容易出错的,明天它可能是DOM中的任何元素,而不是您所期望的元素。我应该如何实现所选的?