jquery inarray无法正确匹配

时间:2012-10-23 06:40:23

标签: jquery

我有一个数组,我正在尝试使用inArray()检查项目是否不在数组中

var popUpArray = ['join','reset_password','photos','session_expired'];


if($.inArray(urlType, popUpArray) != 0) {
  process code...
}

基本上我想在if语句中处理代码,如果urlType变量与数组中的某个值不匹配。

它适用于第一个值'join'但不适用于其他值。我理解这是因为只要它在一个项目上不匹配就会进展。

我想知道如何重新编写这个,所以如果var urlType与数组中的任何项都不匹配,它只会进入IF语句。

THX

1 个答案:

答案 0 :(得分:2)

它适用于join,因为它是零索引。试试这个:

if($.inArray(urlType, popUpArray) == -1) {

}

根据文档:

  

$ .inArray()方法类似于JavaScript的原生.indexOf()   方法,因为它找不到匹配项时返回-1。如果   数组中的第一个元素与value匹配,$ .inArray()返回0。

     

因为JavaScript将0视为松散等于false(即0 ==   假,但是0!== false),如果我们检查是否存在值   在数组中,我们需要检查它是否不等于(或大于)   -1

http://api.jquery.com/jQuery.inArray/