7

例如:你有一张桌子,它有 4 个 tds 和 2 个 trs。表格的背景颜色为白色。如果我点击 A td,A td 应该是红色的,如果我点击 B,B td 应该是红色的,A td 也应该是红色的。如果我点击 C 比,C 应该是红色的,B 和 A 也应该是红色的。

我有这样的东西。但这不好,因为当我再次单击时,我想将颜色改回白色。

http://jsfiddle.net/k8UgT/193/

我使用的代码

<table>
    <tr>
        <td onclick="function()">AAA</td>
        <td onclick="function()">BBB</td>
        <td onclick="function()">CCC</td>
    </tr>
        <tr>
        <td onclick="function()">DDD</td>
        <td onclick="function()">EEE</td>
        <td onclick="function()">FFF</td>
    </tr>
</table>

JS:

$( function() {
  $('td').click( function() {
    $(this).css('background', '#aaa')
  } );
} );
4

4 回答 4

8

欢迎来到 SO。

首先,您不需要onclick归因于 td。其次,我建议使用 CSS 类而不是设置背景颜色。

CSS

.red-cell {
   background: #F00; /* Or some other color */
}

JS

$( function() {
  $('td').click( function() {
    $(this).toggleClass("red-cell");
  } );
} );

在此处阅读有关 toggleClass的更多信息。更新的小提琴

于 2013-10-27T12:49:23.610 回答
4

为红色背景使用 CSS 类,然后.toggleClass()在您的 JavaScript 中使用。

JavaScript

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

CSS

td.on {
    background-color: red;
}

更新小提琴

于 2013-10-27T12:49:37.133 回答
1

尝试这个:

$( function() {
  $('td').click( function() {
      if($(this).attr('style'))
    $(this).removeAttr('style');
      else
    $(this).css('background', '#aaa')
  } );
} );
于 2013-10-27T12:47:44.703 回答
0

尝试这个

$( function() {
  $('td').toggle( function() {
    $(this).css('background', 'red');
  },function(){
  $(this).css('background', 'white');
  });
} );

这是小提琴http://jsfiddle.net/k8UgT/199/

于 2013-10-27T12:50:32.633 回答