javascript - 如何在 html 表格中变灰

标签 javascript jquery html css

当我尝试创建 html 表格时,我想知道如何灰化未看到的单元格。

当我点击单元格2时,我想要的结果如下所示。

enter image description here

我尝试了如下代码。如果有更复杂的灰化方法,请告诉我。

谢谢

var $ = jQuery;
$('td').on('click', function(e) {
  e.preventDefault();
  $('table').toggleClass('greyout');
})
td {
  background-color: aqua;
  transition-duration: 0.5s;
  border: solid black 1px;
  padding: 5px;
}

table {
  border-collapse: collapse;
}

.greyout {
  opacity: 0.2;
  /* Real browsers */
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
  </tr>
  <tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
  </tr>
</table>

最佳答案

您需要将该类应用于除被单击的单元格之外的所有单元格,因此请使用 not() 方法。另请注意,要启用后续点击,您需要从任何 td 元素中删除该类,然后再将其添加到下一组。

此外请注意,preventDefault()td 点击处理程序上是多余的,因为没有要阻止的默认操作。另外,如果您想为 $ 起别名,请使用 document.ready 处理程序中的参数。

话虽如此,试试这个:

jQuery($ => {
  let $td = $('td').on('click', function() {
    $td.removeClass('greyout').not(this).addClass('greyout');
  })
});
td {
  background-color: aqua;
  transition-duration: 0.5s;
  border: solid black 1px;
  padding: 5px;
}

table {
  border-collapse: collapse;
}

.greyout {
  opacity: 0.2;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
  </tr>
  <tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
  </tr>
</table>

关于javascript - 如何在 html 表格中变灰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60884028/

相关文章:

jquery - 是什么让我的菜单水平?

javascript - 窗口大小调整后如何保持滚动位置?

javascript - 如何在包含多个元素的 div 上添加点击事件

javascript - 如何浏览图片并在浏览器中显示?

html - 如何在 HTML 中创建具有两种不同样式的列表?

javascript - Ng-如果不响应模型更改

javascript - 在Vue js中访问父级子事件的数据

javascript - jquery正则表达式替换2个分隔符之间

javascript - Node/ExpressJS 中域及其子域的 Cookie

windows - 是否有任何环境变量代表 "C:\Documents and Settings"文件夹或 C :\Users folder in Windows?