2016-09-27 9 views
0

私はjquery .has()を使用してdivulがあるかどうかを確認しています。それはif声明の中でだが、それはdivは、その内部ulを持っていない場合でも、どのような場合に発動:jqueryはどんな場合でもif文をトリガーします

if ($(".cs-error").has("ul")) { 
 
    alert("it has a UL") 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="cs-error"> 
 

 
</div>

私は何をしないのですか?なぜなら、私はこの単純なことをやろうとしており、もっと良い方法を見つけることができませんでした。私はすでに他の状況で.has()を使用していて、それは常に働いていました。

+0

は* * ...確かに、問題のコードを投稿逃した「私は何をしないのです」。最初の問題を確認するだけでサイトに行ってはいけません。 – charlietfl

+0

2行のコードをコピーするのではなく、実際のユースケースを使用する方が現実的です。@charlietfl – valerio0999

+1

あなたにとって便利なものは関連しません。質問は自己完結型でなければならず、読者の利便性と価値を考慮する必要があります。それらはサイトのガイドラインです – charlietfl

答えて

3

$(".cs-error").has("ul")でも、それでもjQueryのオブジェクトはありますが空のものです。

た少なくとも一つの要素があったのであれば、あなたがチェックする必要があります:

if ($(".cs-error").has("ul").length) { 
+3

'if($( '。cs-error ul')。length)'は関数呼び出しが少ないです。 –

+0

ありがとう!私はこれを受け入れています..10分:ありがとう – valerio0999

関連する問題