我是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');
}
});
如果您有任何疑问,请与我联系!
答案 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对象进行比较