2016-08-23 22 views
0

今日は何か不思議に思った。なぜこれは常にtrueを返しますか? jQuery

この関数は、特定の親要素にtitle要素がない場合でも、何らかの理由で常にtrueを返します。

// JSEPlaceholder contains "#adiv" 
if(typeof $(JSEPlaceholder).children().find("title") !== "undefined"){ 
    alert(); 
} 

どうしてですか?

+0

関連するHTMLを表示できますか? – Li357

+0

「JSEPlaceholder」とは何ですか? –

+0

@RocketHazmatはコメント内の文字列であると述べています – Li357

答えて

8

これは、jQueryがとなるため、常にがjQueryオブジェクトを返すためです。要素を含んでいない可能性はありますが、依然としてオブジェクトです。

長さを確認してください。

if($(JSEPlaceholder).children().find("title").length > 0){ 
    alert(); 
} 
+0

ありがとうございます。これは私が探していた答えです。 –

4

$.find()undefinedを返すことはありません。何も見つからない場合は、空のコレクションを返します。

関連する問題