1

関数を使用して要素を検索したいのですfindが、何も見つからないことをどのように検出できますか?

これは正しく動作せず、常に返す私のコードですtrue:

if ($(this).find('img'))
    return true;
4

3 に答える 3

3

使用する.length

if ($(this).find('img').length)
    return true;
于 2013-07-10T15:15:52.793 に答える
3

最適な方法は、.length を使用することです。たとえば、html が次の場合:

<div>
  <img src="" alt="" />
</div>

そして、あなたの js/jquery は次のとおりです。

var test = $('div').find('img').length;
alert(test);

1 つの画像を含む div があると、test はアラート 1 を返します。

あなたの場合:

if($(this).find("img").length == 0){

// There is no image inside your selected element - Do something

}else{

// There is some image inside your selected element - Do something

}
于 2013-07-10T15:27:02.560 に答える
1

使用する必要があります

$(this).find("img").length == 0

少し難解に思えるかもしれませんが、.find() は、0 個以上の DOM 要素へのポインターを含むことができる jQuery コレクション オブジェクトを返します。現在のコードは、 $(this).find("img") という変数が設定されているかどうかのみをチェックしています。

于 2013-07-10T15:21:11.110 に答える