2016-07-27 16 views
4

要素とjQueryが設定されています。その要素がjQueryセット内にあるかどうか確認したいと思います。私はこのような条件が必要です。要素がjQueryセット内にあるかどうかを確認します

if ($someUL.find("> li > a").contains(myElement)) { 
    ... 
} 

ここでは、containsメソッドは存在しません。私はそれを使って目標を立てました。私はhasis$.containsのようないくつかの方法を知っていますが、それらはすべて意味が異なります。

+1

'場合である($ someUL.find( "> LI> A")。(MYELEMENT).LENGTHをフィルタリングする)' ???今私はあなたの正確な期待行動は何か分からないのですか? '$ someUL.find(myElement).length'を使うのはどうでしょうか?あなたのユースケースと関連するHTMLマークアップに依存するので、十分かもしれません。あなた自身がMCVEを提供する方が良いでしょうか? –

+0

@A.Wolffありがとうございます。あなたの提案もうまくいきますが、私はこれに 'index'を使いたいと思っています。 –

+1

それはあなたのために働かない: 'myElement.is($ someUL.find("> li> a "))'? –

答えて

2

ここで.index()メソッドを使用できます。要素がセットに見つからない場合、.index()は-1を返します。:

if($someUL.find("> li > a").index(myElement) > -1){ 
    //myelement exists in set $someUL.find("> li > a") 
} 
+0

ありがとうあなたは簡単な答えのために、これは 'filter' IMOを使うよりもこの質問の方がいいです。また、パフォーマンスが向上する限り、これはやや効率的です。 –

+0

@ZoltánTamási:それは助けてうれしい:)、答えを受け入れることを忘れないでください。 –

2

をあなたはjQuery APIを読むことによってあなたの答えを持つことができます。

私はあなたの目的はセレクターに一致するかどうかを確認することです。答えは.is()を使用することです。 APIによる

  • .has()がプロミスで使用され、実験技術
  • .contain()又は$.contain()が子孫
  • .is()セレクタ、要素または選択を決定するために使用することができると判断しています機能しても。そう

、あなたはここで.is()を使用する必要がありますAPI

+0

要約いただきありがとうございます。私は、封じ込めを確認するために別のjQueryオブジェクトを受け入れることができるかどうか分かりませんでした。しかし、この単純なタスクでは、正確なDOM要素がある場合、 'index'を使用する方がIMOに優れています。しかし、あなたは間違いなく私のアップワイヤーを神に捧げました。 –

+0

また、私はjQuery APIを読むために自由な一週間を持っていなかったことを私に許してください:) –

+0

あなたの質問の前に、私は決して '.has()'を使用しません。あなたの質問の後、私は '.has()'関数の理解を得る、おそらくあなたの質問に多くの答えは、最高を選択します。私は他人の答えから多くを学ぶ:) – TomIsion

関連する問題