javascript - 如何使用 JavaScript/jQuery 在单击时更改特定 TD 的背景颜色?

标签 javascript jquery html css

我有一个 <td style="background-color:white"></td> .

我想做的是当我点击里面的 td 时,背景颜色变为黑色。我如何使用 jQuery 完成此操作?是onmousedown事件还是click事件?

我尝试使用普通的 JavaScript:

<td style="background-color:white" onclick="$(this).onmousedown('background-color','black')">SomeText</td>

...但是没用...

最佳答案

试试这个...

jQuery

$('td').click(function() {
   $(this).css('backgroundColor', '#000');
});

……或者……

$('table').on('click', 'td', function() {
   $(this).css('backgroundColor', '#000');
});

JavaScript

[].forEach.call(document.getElementsByTagName('td'), function(item) { 
   item.addEventListener('click', function() {
       item.style.backgroundColor = '#000';
   }, false); 
});

……或者……

var table = document.getElementsByTagName('table')[0];

var changeStyle = function(e) {
    if (e.target.tagName == 'td') {
        e.target.style.backgroundColor = '#000';
    }
};

table.addEventListener('click', changeStyle, false);

后面的例子只绑定(bind)一个事件处理器。

添加一个类可能会更好,这样您就可以在样式表中指定您的样式,而不是耦合您的表示层和行为层。

jQuery

$('td').click(function() {
   $(this).addClass('active');
 );

……或者……

$('table').on('click', 'td', function() {
   $(this).addClass('active');
});

CSS

td.active {
  background: #000;
}

这不起作用的原因...

<td style="background-color:white"
     onclick="$(this).onmousedown('background-color','black')">
     SomeText
</td>

...是因为 jQuery 对象上没有 onmousedown() 事件(尽管有 mousedown() )。

关于javascript - 如何使用 JavaScript/jQuery 在单击时更改特定 TD 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833088/

相关文章:

javascript - 语法错误 : missing ) after argument list while using LZMA-js

javascript - 如何使用 chartjs 为条形图中的每个条设置颜色?

javascript - Ng-if 在监视变量变为 false 时不隐藏元素

javascript - Javascript 中的正则表达式捕获

jquery - 当使用 ajax 和 jquery 打开它时,我的链接不起作用

javascript - 我可以在 HTML5 的 "type"标签中跳过属性 "style"吗?

html - CSS Tooltip 在不同的浏览器中有不同的位置。我该如何解释呢?

javascript - 使用 JQuery 加载功能有什么缺点吗?

c# - 选择带有两个下拉列表的选择

Javascript - 在上一个函数结束后启动函数