【问题标题】:Change style if checkbox checked如果选中复选框,则更改样式
【发布时间】:2013-02-26 00:57:47
【问题描述】:

我该怎么做?这个不行,没有结果,没有效果,没有错误输出。

$('input[type=checkbox]').each(function() 
    {
            if($(this).attr("checked") === true){
            $('.hoverbox .a').css('text-transform', 'uppercase');
            }
            else
            {
            $('.hoverbox .a').css('text-transform', 'lowercase');
            }
    });

【问题讨论】:

  • 您需要明确说明您要完成的工作。
  • 请勿在编辑时完全更改您的原始问题。如果您有新问题,请提交新问题。
  • 我没有,同样的问题。
  • 不是同一个问题。您的原始源代码中没有.on('change', ...)。更糟糕的是,您添加了完全无用的陈述“它不会工作”,而没有解释“它”是什么或“工作”是什么样子。
  • 我无法理解为什么很难弄清楚我假装要实现的目标。如果选中复选框,则将该 div 类大写,否则将其小写。

标签: jquery


【解决方案1】:

您可能需要一个事件处理程序:

$('input[type=checkbox]').on('change',function(e) {
   // do stuff
});

http://api.jquery.com/on

或者可能(我很难理解您的意图)您需要使用.prop() 而不是.attr()

if ($(this).prop('checked')) {
    // do something 
} else {
    // do something else
}

更新:把它们放在一起:

$('input[type=checkbox]').on('change',function(e) {
    if ($(this).prop('checked')) {
        $('.hoverbox .a').css('text-transform', 'uppercase');
    } else {
        $('.hoverbox .a').css('text-transform', 'lowercase');
    };
});

虽然添加自定义类和toggling it 会为您省点麻烦:

$('input[type=checkbox]').on('change',function(e) {
    $('.hoverbox .a').toggleClass('uppercase');
});

CSS:

.hoverbox .a {
    text-transform: lowercase;
}
.hoverbox .a.uppercase {
    text-transform: uppercase;
}

【讨论】:

  • 认为他的问题更多是关于改变风格,而不是处理事件。
  • @BenM 不,仍然不明确。
  • 我同意。因此,为什么我最初的评论说我认为
  • @Blazemonger 我在这里有我的问题stackoverflow.com/questions/23562875/…。你能帮我解决它吗....
【解决方案2】:

为什么不能使用 CSS?为什么要浪费 javascript?

input[type=checkbox]:checked + div {
    text-decoration:underline;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多