jQuery - OnClick,在单击时始终更改表格单元格的背景颜色

时间:2013-10-27 12:44:44

标签: javascript jquery html css

例如: 你有一张桌子,它有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 个答案:

答案 0 :(得分:7)

欢迎来到SO。

首先,您不需要{td'上的onclick属性。其次,我建议使用CSS类而不是设置背景颜色。

<强> CSS

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

<强> JS

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

详细了解toggleClass here。 更新了fiddle

答案 1 :(得分:3)

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

的JavaScript

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

CSS

td.on {
    background-color: red;
}

Updated Fiddle

答案 2 :(得分:1)

试试这个:

$( function() {
  $('td').click( function() {
      if($(this).attr('style'))
    $(this).removeAttr('style');
      else
    $(this).css('background', '#aaa')
  } );
} );

答案 3 :(得分:0)

试试这个

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

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