2013-01-14 36 views
1

我是網絡編程新手,對三元運算符沒有太多的瞭解。我發現了一些jQuery滑塊的示例代碼,但我需要對其進行編輯,以便在用戶將鼠標移動到橫幅上時停止。我希望有人能幫我把下面的代碼變成一組簡單的if和else if語句,我更習慣於處理。提前致謝。將以下三元運算符轉換爲常規if語句?

//Get next image, when it reaches the end, rotate it back to the first image 

var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('div.rotator ul li:first') :current.next()) : $('div.rotator ul li:first')); 
+2

開始向外你的工作方式。 – Jon

回答

1

你應該知道,三元運算符的格式如下:

condition ? if true : else 

寫這種方式,並嘗試把它翻譯:

var next = ((current.next().length) 
      ? 
       ((current.next().hasClass('show')) 
       ? 
        $('div.rotator ul li:first') 
       : 
        current.next()) 
      : 
       $('div.rotator ul li:first')); 

現在你可以想像它像一個if/else塊,它只是改變語法的問題。

var next; 
if (current.next().length) { 
    if (current.next().hasClass('show')) { 
     next = $('div.rotator ul li:first'); 
    } else { 
     next = current.next()); 
    } 
} else { 
    next = $('div.rotator ul li:first'); 
} 
2

不使用三元操作相對應的是:

var next; 
if (current.next().length) { 
    if (current.next().hasClass('show')) { 
     next = $('div.rotator ul li:first') 
    } 
    else { 
     next = current.next(); 
    } 
} 
else { 
    next = $('div.rotator ul li:first')); 
} 
+0

你真棒謝謝你!我現在看到什麼讓我感到困惑的是嵌套的if語句。 – user1978242

0

這裏是if/else等價的:從最裏面的一對括號

var next; 
if (current.next.length) { 
    if (current.next().hasClass('show')) { 
     next = $('div.rotator ul li:first'); 
    } else { 
     next = current.next(); 
    } 
} else { 
    next = $('div.rotator ul li:first'); 
} 
相關問題