当有人取消单击复选框时,如何更改背景颜色

How to change background color when someone unclicks a checkbox

本文关键字:何更改 背景 颜色 复选框 取消 单击      更新时间:2023-09-26

要突出显示一行,我的代码是:

function highlight_row(row_id)
{
    var row = document.getElementById(row_id);
    row.style.background = "yellow"; // background yellow
}
我的HTML代码是:
<tr id="row_{{ forloop.counter }}"><td>{{ word.n }}</td><td style="padding:0;"><a href="/search/?q={{ word.word }}" style="padding:5px;display:block;color:blue;">{{ word.word }}</a></td><td style="text-align:center"><input type="checkbox" name="checkbox_{{ word.id }}" onclick="highlight_row('row_{{ forloop.counter }}')" /></td></tr>

当用户取消选中该行的复选框时,如何取消该行的高亮显示?

将'this'添加到调用函数中:

<td style="text-align:center">
 <input type="checkbox" 
        name="checkbox_{{ word.id }}" 
        onclick="highlight_row('row_{{ forloop.counter }}',this)" />
</td>

现在您可以使用复选框的复选状态来决定要做什么:

function highlight_row(row_id,checkbox)
{
    var row = document.getElementById(row_id);
    row.style.background = checkbox.checked ? "yellow" : ""; 
}
function highlight_row(row_id)
{
  if (!highlight_row.toggleColor) highlight_row.toggleColor = 0;
  var row = document.getElementById(row_id);
  row.style.background = (highlight_row.toggleColor%2==0) ? "yellow" : ''; // put alternate color in ''
  highlight_row.toggleColor++;
}

你是说这样吗?

function highlight_row(row_id)
{
  var row = document.getElementById(row_id);
  if (row.style.background !== "yellow") {
  row.style.background = "yellow";
  }
  else {
  row.style.background = "white";
  }
}