2016-08-23 2 views
0

Сегодня я столкнулся с чем-то странным.Почему это всегда верно? jQuery

Эта функция всегда возвращает 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. Если он ничего не находит, он просто возвращает пустую коллекцию.

Смежные вопросы