【问题标题】:Who can explain what means "? currentPosition+1 : currentPosition-1;" [duplicate]谁能解释一下“?currentPosition+1 : currentPosition-1;”是什么意思[复制]
【发布时间】:2015-01-06 14:05:30
【问题描述】:

是幻灯片示例的一部分
我无法理解这部分。
谁能详细解释一下:

        currentPosition = ($(this).attr('id')=='rightNav')
        ? currentPosition+1 : currentPosition-1;

他们将如何写作?(只是为了理解)

            currentPosition = ($(this).attr('id')=='rightNav')
            ? currentPosition+1 : currentPosition-1;

【问题讨论】:

  • 它正在检查当前元素的 id 值是否等于 rightNav 如果是,则 currentPosition 变量将等于 CurrentPosition + 1 如果不等于,则 currentPosition 将等于 currentPosition - 1
  • 你可以阅读php中的三元运算符php.net/manual/en/language.operators.comparison.php
  • @Robin 当问题是关于 JS 时,您正在链接到 PHP 文档?我知道他们做同样的事情,但仍然......
  • 抱歉,老兄回答的太匆忙了。

标签: javascript jquery


【解决方案1】:

它的条件类型,表示如果条件为真,currentPosition将加1,否则减1。

所以它会是一样的:

if ($(this).attr('id') == 'rightNav') {
  currentPosition += 1;
}
else {
  currentPosition -= 1;
}

【讨论】:

    【解决方案2】:

    ternary operator,基本上是一个短的if。

    等价的如下:

    if ($(this).attr('id') == 'rightNav') {
        currentPosition += 1;
    } else {
        currentPosition -= 1;
    }
    

    【讨论】:

    • +1 是实际给出操作员名称的唯一答案。
    • @Rory McCrossan:实际上这是运算符的类型(即它有 3 个部分)。 那个特定的三元运算符的名字是conditional operator。 JS 中恰好只有一个三元运算符,所以这些术语被滥用了。
    猜你喜欢
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 2019-10-29
    • 2016-08-18
    相关资源
    最近更新 更多