Tr 没有更新其 class
Tr is not updating its class
我想在 table selectable 中创建一行,但是每当我单击该行时,控制台日志都会显示它做了正确的事情,但没有改变它的 class。为什么会这样,我该如何解决?
生成 select 功能的部分代码:
var tableconn = document.getElementById("connectionsLane"+laneid);
let row = tableconn.insertRow();
row.id = "row"+insertData.id;
row.onclick = function() {
if (row.classList.contains("selected")) {
console.log("unselected");
row.classList.remove("selected");
} else {
console.log("selected")
document.getElementById("row" + insertData.id).classList.add("selected");
}
}
insertData.id
每次调用整个过程时都会增加 1,而 laneid
取决于用户当前引用的网站部分(是 1-255 整数)
这是一个简单示例,说明如何 select 行 table 并使用函数设置样式。此函数可用于在文档中的任何 table 行中设置 class 名称。
// for setting the class name on a row in a table
const onrowselect = e => {
let table = e.target.closest('table');
let trs = table.querySelectorAll('tr');
// remove all class=selected
trs.forEach(tr => tr.classList.remove('selected'));
// the current tr
var tr = e.target.closest('tr');
tr.classList.add('selected');
};
// define a table
var table01 = document.getElementById('table01');
// add and eventlistener to the table
table01.addEventListener('click', onrowselect);
tr {
cursor: pointer;
}
.selected {
background-color: silver;
}
<table id="table01">
<tr>
<td>Row</td>
<td>1</td>
</tr>
<tr>
<td>Row</td>
<td>2</td>
</tr>
<tr>
<td>Row</td>
<td>3</td>
</tr>
</table>
我想在 table selectable 中创建一行,但是每当我单击该行时,控制台日志都会显示它做了正确的事情,但没有改变它的 class。为什么会这样,我该如何解决?
生成 select 功能的部分代码:
var tableconn = document.getElementById("connectionsLane"+laneid);
let row = tableconn.insertRow();
row.id = "row"+insertData.id;
row.onclick = function() {
if (row.classList.contains("selected")) {
console.log("unselected");
row.classList.remove("selected");
} else {
console.log("selected")
document.getElementById("row" + insertData.id).classList.add("selected");
}
}
insertData.id
每次调用整个过程时都会增加 1,而 laneid
取决于用户当前引用的网站部分(是 1-255 整数)
这是一个简单示例,说明如何 select 行 table 并使用函数设置样式。此函数可用于在文档中的任何 table 行中设置 class 名称。
// for setting the class name on a row in a table
const onrowselect = e => {
let table = e.target.closest('table');
let trs = table.querySelectorAll('tr');
// remove all class=selected
trs.forEach(tr => tr.classList.remove('selected'));
// the current tr
var tr = e.target.closest('tr');
tr.classList.add('selected');
};
// define a table
var table01 = document.getElementById('table01');
// add and eventlistener to the table
table01.addEventListener('click', onrowselect);
tr {
cursor: pointer;
}
.selected {
background-color: silver;
}
<table id="table01">
<tr>
<td>Row</td>
<td>1</td>
</tr>
<tr>
<td>Row</td>
<td>2</td>
</tr>
<tr>
<td>Row</td>
<td>3</td>
</tr>
</table>