我正在使用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>
答案 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');
})