関数を使用して要素を検索したいのですfind
が、何も見つからないことをどのように検出できますか?
これは正しく動作せず、常に返す私のコードですtrue
:
if ($(this).find('img'))
return true;
使用する.length
if ($(this).find('img').length)
return true;
最適な方法は、.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
}
使用する必要があります
$(this).find("img").length == 0
少し難解に思えるかもしれませんが、.find() は、0 個以上の DOM 要素へのポインターを含むことができる jQuery コレクション オブジェクトを返します。現在のコードは、 $(this).find("img") という変数が設定されているかどうかのみをチェックしています。