Javascript 确定按下了哪个表格元素

Javascript 确定按下了哪个表格元素,javascript,html,html-table,mouseclick-event,Javascript,Html,Html Table,Mouseclick Event,我制作了一个HTML表,现在我正在尝试更改单击元素的背景色。问题在于表元素的宽度不完全相同。 当我按下某些元素的角时,它会将其解释为错误的元素。 它并不总是解释为错误的一个,但我仍然希望它的工作每一次 var table=document.getElementById(“表”); var wsquare=25,hsquare=25; var w=窗内宽度; var h=窗内高度; var m=parseInt(w/wsquare),n=parseInt(h/hsquare); wsquare=

我制作了一个HTML表,现在我正在尝试更改单击元素的背景色。问题在于表元素的宽度不完全相同。 当我按下某些元素的角时,它会将其解释为错误的元素。 它并不总是解释为错误的一个,但我仍然希望它的工作每一次

var table=document.getElementById(“表”);
var wsquare=25,hsquare=25;
var w=窗内宽度;
var h=窗内高度;
var m=parseInt(w/wsquare),n=parseInt(h/hsquare);
wsquare=w/m;
hsquare=h/n;
变量列=[],按下=[];
var starty=数学楼层(n/2),startx=数学楼层(m/3),endy=starty,endx=2*startx;
对于(变量i=0;i{
x=数学楼层(e.clientX/wsquare);
y=数学楼层(e.clientY/hs平方);
如果(!按下[y][x]){
table.rows[y]。单元格[x]。style.backgroundColor=col;
按下[y][x]=1;
}
否则{
table.rows[y].单元格[x].style.backgroundColor='#FFFFFF';
按下[y][x]=0;
}
});
th,表,td{
边框:1px纯黑;
边界塌陷:塌陷;
}
桌子{
位置:绝对位置;
左:0;
排名:0;
右:0;
底部:0;
宽度:100%;
身高:100%;
}
* {
保证金:0;
填充:0;
}

试试这个。我在表中添加了一个
填充:1px
,th和td

var table=document.getElementById(“表”);
var wsquare=25,hsquare=25;
var w=窗内宽度;
var h=窗内高度;
var m=parseInt(w/wsquare),n=parseInt(h/hsquare);
wsquare=w/m;
hsquare=h/n;
变量列=[],按下=[];
var starty=数学楼层(n/2),startx=数学楼层(m/3),endy=starty,endx=2*startx;
对于(变量i=0;i{
x=数学楼层(e.clientX/wsquare);
y=数学楼层(e.clientY/hs平方);
如果(!按下[y][x]){
table.rows[y]。单元格[x]。style.backgroundColor=col;
按下[y][x]=1;
}
否则{
table.rows[y].单元格[x].style.backgroundColor='#FFFFFF';
按下[y][x]=0;
}
});
th,表,td{
边框:1px纯黑;
边界塌陷:塌陷;
填充:1px;//观察此填充
}
桌子{
位置:绝对位置;
左:0;
排名:0;
右:0;
底部:0;
宽度:100%;
身高:100%;
}
* {
保证金:0;
填充:0;
}

我认为这在某种程度上是一种修复:

// border-collapse: collapse -> remove
border-collapse: separate;
border-spacing: 0px;

现在边框比以前厚了一点,但您可能已经知道了一个很好的解决方法:)

出于某种原因,选择table元素对我来说仍然无法正常工作