2013-02-19 38 views
0

我使用JavaScript中的下一個代碼來設置類ID,我只想要一個div將與邊框類中的每個時間:設置優雅類似的語句,而不必重複它

if (counter) { 
      $('#car1').addClass('border'); 
      $('#car2').removeClass('border'); 
     } 
     else { 
      $('#car2').addClass('border'); 
      $('#car1').removeClass('border'); 
     } 

counter它只是一個布爾變量,可能是什麼......

我想知道,我可以更優雅嗎?

+2

'counter'是什麼,你爲什麼要在同一個元素上添加和刪除同一個類? – adeneo 2013-02-19 16:23:16

+1

該代碼對我沒有意義。您可以在同一個元素中添加和刪除相同的類(邊框),這意味着您不會隨時隨地獲得類邊框。 – lolol 2013-02-19 16:25:04

+1

看來,你想在'#car1'上設置'border'並將它從'#car2'中移除... – 2013-02-19 16:26:54

回答

2

如果counter是一個布爾值,你可以用它作爲toggleClass開關:

$('#car1').toggleClass('border', counter); 
$('#car2').toggleClass('border', !counter); 

- docs - >

.toggleClass(className,switch)

「switch」:Boolean一個布爾值(不僅僅是 truthy/falsy)值,用於確定是應該添加類還是刪除 。

-2

如何case語句

switch(counter) 
{ 
    case 1: 
    $('#car1').addClass('border'); 
    $('#car2').removeClass('border'); 
    break; 
    case 2: 
    $('#car2').addClass('border'); 
    $('#car1').removeClass('border'); 
    break; 
    default: 
    .... 
} 
+1

這是相同的想法,我認爲...更多代碼 – oleg 2013-02-19 16:34:21

+0

優雅=清晰度,對我來說。對於新手程序員來說,可維護性=清晰度=優雅。 – jamesTheProgrammer 2013-02-19 16:44:32

+0

它甚至不以相同的方式工作。在原始代碼中,如果「計數器」是真的,則第一個程序段將被執行,如果第二個程序段是虛假的,則會執行第二個程序段。你不能(也不應該)使用switch語句來測試它。 (當然,變量名是誤導性的。) – JJJ 2013-02-19 20:50:38