背景颜色改变onclick重构

时间:2015-10-24 15:00:20

标签: javascript jquery

我是JQuery / JavaScript的新手。

我已成功完成切换以处理上午/下午按钮,您可以在此处查看: Working Code

我现在正在尝试使用"这"重构我的代码。我还没有弄清楚使用if语句改变背景有什么问题。请在这里查看: Code I'm refactoring

$('.ampm').click(function() {
console.log($(this).attr('id'));

var text = $(this).text();
$('#meridiem').val(text);

if ($(this).attr('id') === $('#am')) {
$('#wrapper').css('background-color', 'orange');
} else if ($(this).attr('id') === $('#pm')) {
$('#wrapper').css('background-color', 'blue');
}
});

如果您有任何疑问,请与我联系!

2 个答案:

答案 0 :(得分:1)

当您测试.attr('id')时,请勿在字符串中使用#。此外,在进行比较时,只需使用'am''pm',而不是将其包装为jQuery对象。最后,在使用JavaScript / jQuery设置CSS时,请使用backgroundColor语法而不是background-color

$('.ampm').click(function() {

  var text = $(this).text();
  $('#meridiem').val(text);

  if ($(this).attr('id') === 'am') {
console.log('am');
    $('#wrapper').css('backgroundColor', 'orange');
  } else if ($(this).attr('id') === 'pm') {
    $('#wrapper').css('backgroundColor', 'blue');
  }
});

答案 1 :(得分:1)

你需要改变这个: -

if ($(this).attr('id') === $('#am')) {

到此: -

if ($(this).attr('id') === 'am') {

和您的else if

相同

您正在将字符串与jquery对象进行比较