2013-02-25 37 views
-1

我該怎麼做?這是行不通的,沒有結果,沒有效果,沒有錯誤輸出。如果選中複選框,則更改樣式

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

您需要明確說明您要完成的工作。 – Blazemonger 2013-02-25 16:35:59

+0

不要在編輯時完全改變原始問題。如果您有新問題,請提交新問題。 – Blazemonger 2013-02-25 16:46:22

+0

我沒有,它的同樣的問題。 – pleaseDeleteMe 2013-02-25 16:46:56

回答

4

你可能需要一個事件處理程序:

$('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; 
} 
+0

我認爲*他的問題更多的是改變風格,而不是處理事件。 – BenM 2013-02-25 16:34:26

+0

@BenM有點難以分辨。 – Blazemonger 2013-02-25 16:34:46

+0

除了他的代碼示例中的評論;) – BenM 2013-02-25 16:35:49

2

爲什麼不能使用CSS?爲什麼要浪費JavaScript?

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