将以下三元运算符转换为常规if语句?

时间:2013-01-14 19:24:06

标签: jquery

我是网络编程的新手,对三元运算符的处理不多。我找到了一些jquery滑块的示例代码,但我需要对其进行编辑,以便在用户将鼠标移到横幅上时停止。我希望有人可以帮助我将下面的代码转换成一组简单的if和else 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'));

3 个答案:

答案 0 :(得分: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'));
}

答案 1 :(得分: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 :(得分: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');
}