jQuery - 如果value等于其中任何一个,请执行此操作

时间:2016-05-08 03:10:06

标签: jquery

我有这段代码:

if(weather.temp >= 30) {

    $("body").randomClass( sunny );
    $("body").addClass( 'sunny' );
    randno = sunnyquotes[Math.floor( Math.random() * sunnyquotes.length )];
    $('.home-main h1').text( randno );
  } else if (weather.todayCode == 40||39||38||37||35||9||4||3||11) {
    $("body").randomClass( rain );
    $("body").addClass( 'rain' );
    randno = rainquotes[Math.floor( Math.random() * rainquotes.length )];
    $('.home-main h1').text( randno );
  } else if ((weather.temp > 18) && (weather.temp < 30) && (weather.todayCode == 32||30||34)) {
    $("body").randomClass( moderate );
    $("body").addClass( 'moderate' );
    randno = moderatequotes[Math.floor( Math.random() * moderatequotes.length )];
    $('.home-main h1').text( randno );
  } else if (weather.temp <= 18) {
    $("body").randomClass( cold );
    $("body").addClass( 'cold' );
    randno = coldquotes[Math.floor( Math.random() * coldquotes.length )];
    $('.home-main h1').text( randno );

  }

我正在尝试使用雅虎天气确定天气状况。我被困在它正在检测今天的地方。

它落在第一个其他如果。我希望它只在todayCode与这些数字中的任何一个匹配时执行。否则,如果是,请转到下一个。

虽然如果我只有一个号码可以检测,但是它可以工作,例如:

else if (weather.todayCode == 40)

我检查多个数字的方式显然是错误的。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

实现多重比较的一种简单方法是使用数组

if ([40,39,38,37,35,9,4,3,11].indexOf(weather.todayCode) > -1)

indexOf

答案 1 :(得分:0)

比较写得不正确。试试这个:

...
else if (weather.todayCode == 40 || weather.todayCode == 39 || weather.todayCode == 38) //Add more conditions as necessary
...

更好的想法是一个可以遍历有效值数组的函数 - 更具可读性,但上面的示例将解决您的直接问题。

答案 2 :(得分:0)

您也可以使用 $。inarray

rainCode=[ 40,39,38,37,35,9,4,3,11];
if ($.inArray(weather.todayCode, rainCode) > -1)
     $("body").addClass( 'rain' );