2017-03-06 4 views
1

配列要素のいずれかが指定された条件を満たすかどうかを確認する必要があります。 "isが定義されていません"というエラーが表示されます。jqueryの `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'); 
    } 
} 
+0

それに答えるためにいくつかのより簡単な方法が存在する場合があります。より多くの文脈が必要です。 – Jai

答えて

1

変更するには、次の行:

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

} 

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

への注意:

  • あなたは&&またはを使用して複数の条件を置くことができます
  • あなたはis()機能が同じように使用されて==
+0

は私にとって正しいようです。 +1 –

+0

==演算子を使って2つのオブジェクトを比較できますか? – madalinivascu

+0

ええ..それはうまく働いてくれてありがとう。 – Aash

0

を使用して2つのオブジェクトを比較することはできません。

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

} 

ドキュメントを読む:http://api.jquery.com/is/

は必ずparentNameとtempfArray両方[i]がいることを確認しますjqueryオブジェクトです。

+0

リプレイをありがとう、しかし私はここで私はこのbecozを使用することはできませんparantNameは変数です関数ではないと思う。私は正しいですか? – Aash

+0

@Aashそれはどういう意味ですか?別の関数で関数を呼び出すにはどうすればいいですか?parantNameは関数ではなく変数上で 'is()'と呼ばれる変数です – madalinivascu

+0

あなたは正しいですが、 "Uncaught TypeError:parentName.isは関数ではありません"。もう一度ありがとう、私はちょうど()のGoogleを検索し、より多くの情報を得た。 – Aash

0

is is not definded.

このエラーは、呼び出し中のグローバルコンテキストでは、関数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'); 
    } 
} 
+0

しかし、うまく動作せず、何らかのエラーが発生することを示しています。 "Uncaught TypeError:未定義の 'find'プロパティを読み取ることができません。 – Aash

+0

opps私の間違いはfunction findを使用して代わりにarrayを使うことを忘れてしまった。 – Jai

+0

@Aashが更新されました。 – Jai

関連する問題