1、bind 函数为每个td节点绑定click事件,当某个td节点被点击时class变为current,同时以该td为中心的同一行和同一列td节点class变为wrap,具体效果参考以下图片
2、每次click后,请清空所有不需要变动的td节点的class
3、请不要手动调用bind函数
4、当前界面为系统生成 9 * 9 表格,执行 bind 函数,并点击其中td后的效果
5、请不要手动修改html和css
6、不要使用第三方插件
function bind() {
consttds = document.getElementsByTagName('td'),
trs = document.getElementsByTagName('tr'),
m = trs.length,
n = Math.round(tds.length / m);
for(let i = 0; i < tds.length; i++) {
tds[i].onclick = () => {
for(let j = 0; j < m * n; j++) {
tds[j].className = '';
if(i == j) {
tds[j].className = 'current';
}
if((Math.floor(j / n) == Math.floor(i / n) || i % n == j % n) && j != i) {
tds[j].className = 'wrap'
}
}
}
}
} function bind() {
var tr = document.querySelectorAll('tr')
var td =document.querySelectorAll('td')
for(var i=0;i<td.length;i++){
td[i].addEventListener('click',function(){
for(var i =0;i<td.length;i++){
td[i].className =""
}
var trC = this.parentNode.children
for(var i =0;i<trC.length;i++){
trC[i].className="wrap"
}
for(var i = 0;i<tr.length;i++){
tr[i].children[this.cellIndex].className="wrap"
}
this.className="current"
})
}
}
一开始居然不知道有cellIndex这个属性。。。