$(function () { if($('body').find('#slideshow')) { $('body').find('.topBox').addClass('home'); } });
Я имею в виду, что это работает, но если я достану #slideshow, он все равно добавит класс?
#slideshow
Я пытался еще удалить класс.
Если вы хотите проверить существование элемента, вы можете использовать свойство .length для этого селектора элемента.
.length
А как насчет этого кода
if ($("#slideshow").length > 0) { $('.topBox').addClass('home'); }
if($('body').find('#slideshow')) {}
всегда будет оцениваться как истина.$ ('body'). find ('# slideshow') действительно возвращает что-то: объект (даже если это пустой объект).Вместо этого проверьте длину объекта:
if($('body').find('#slideshow').length) {}
Возвращаемое значение из jQuery('body').find(...) всегда будет истинным, поскольку оно возвращает объект jQuery.
jQuery('body').find(...)
Вы хотите проверить, возвращает ли он какие-либо элементы, которые соответствуют, поэтому вы хотите:
if(jQuery('body').find(...).size())