单击时突出显示表格上的单元格(css / html)

时间:2018-07-07 20:09:02

标签: javascript html css

我正在使用php,css和javascript开发一个网站,并且我有一个问题,当我单击它时如何突出显示一个单元格(表格)?例如,我有一张3x7的桌子,当我单击位置2x2时,该位置应以一种颜色突出显示,如果我再次在同一单元格中单击,它将返回;如果我单击了许多单元格,则所有这些都应突出显示。 >

谢谢。

<table border='2' cellpadding='5' align='center'>
<tbody>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
        <td>5</td>
        <td>6</td>
        <td>7</td>
    </tr>
    <tr>
        <td>8</td>
        <td>9</td>
        <td>10</td>
        <td>11</td>
        <td>12</td>
        <td>13</td>
        <td>14</td>
    </tr>
    <tr>
        <td>15</td>
        <td>16</td>
        <td>17</td>
        <td>18</td>
        <td>19</td>
        <td>20</td>
        <td>21</td>
    </tr>
</tbody>

2 个答案:

答案 0 :(得分:2)

只需使用事件委托,即可将addEventListener添加到table,然后使用事件target(此处为e.target)来检测哪个td点击。

然后将td上的课程切换到例如高亮他们。

堆栈片段

var table = document.querySelector('table');

table.addEventListener('click', function(e) {
  e.target.classList.toggle('highlite')
})
td.highlite {
  background: yellow
}
<table border='2' cellpadding='5' align='center'>
<tbody>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
        <td>5</td>
        <td>6</td>
        <td>7</td>
    </tr>
    <tr>
        <td>8</td>
        <td>9</td>
        <td>10</td>
        <td>11</td>
        <td>12</td>
        <td>13</td>
        <td>14</td>
    </tr>
    <tr>
        <td>15</td>
        <td>16</td>
        <td>17</td>
        <td>18</td>
        <td>19</td>
        <td>20</td>
        <td>21</td>
    </tr>
</tbody>

答案 1 :(得分:-1)

让jQuery变得更简单

css:

.highlight {
  background-color: #ffff00;
}

js:

$('td').click(function() {
    $(this).toggleClass('highlight');
})

提琴:https://jsfiddle.net/L5yuc1eg/