如何在jquery中的`is()`中给出一个条件检查

时间:2017-03-06 05:00:26

标签: jquery ajax

我需要检查数组元素中是否有任何一个满足给定条件。但是我收到“is未定义”的错误。

var tempfLength = tempfArray.length;
for(var i=tempfLength-2;i> -1;i--){
   alert(tempfArray[i]);
   if((tempfLength >length)&&(is(tempfArray[i]==parentName))){
     $(this).hide('str');
   }
}

3 个答案:

答案 0 :(得分:1)

更改以下行:

if((tempfLength >length)&&(is(tempfArray[i]==parentName)))
{

}

if( (tempfLength >length) && (tempfArray[i] == parentName) )
{
    // Do something here
}

注意:

  • 您可以使用&&||
  • 添加多个条件
  • 您无法使用==
  • 比较2个对象

答案 1 :(得分:0)

使用is()函数,如:

if((tempfLength >length)&&(parentName.is(tempfArray[i])))
{

}

阅读文档:http://api.jquery.com/is/

确保parentName和tempfArray [i]都是jquery对象

答案 2 :(得分:0)

  

未被定义。

此错误表示功能is()在您调用它的 全局 上下文中不可用。

我理解了这个问题,您可以使用Array.prototype.find()

来尝试
var $this = $(this); // <----make sure to cache it as in the array this doesn't belong to
var tempfLength = tempfArray.length; //`----what you think.
for(var i=tempfLength-2;i> -1;i--){
    alert(tempfArray[i]);
    if((tempfLength >length)&&(tempfArray.find(function(item){item === parentName})))){
      $this.hide('str');
    }
}