(Поскольку у меня, кажется, недостаточно репутации, чтобы проголосовать за ответ ...)
Волк писал (а):
Свойство длины вызова на неопределенном
или нулевой объект вызовет IE и
сбой браузеров webkit!
Вместо этого попробуйте это:
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram
if($("#something") !== null){
// do something
}
или
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram
if($("#something") === null){
// don't do something
}
Хотя верно, что вызов свойства length для неопределенного или нулевого объекта приведет к сбою браузеров, но результат выбора селекторов jQuery ($ ('...')) будет , никогда не будет нулевым или не определено. Таким образом, предложения кода не имеют смысла. Используйте один из других ответов, они имеют больше смысла.
(обновление 2012 г.) Поскольку люди смотрят на код, и этот ответ довольно высок в списке: последние пару лет я использовал этот небольшой плагин:
jQuery.fn['any'] = function() {
return (this.length > 0);
};
Я думаю $ ('div'). Any () читается лучше, чем $ ('div'). Length , плюс вы не будете так сильно страдать от опечаток: $ ('div'). Ayn () выдаст ошибку во время выполнения, $ ('div'). Длина , скорее всего, всегда будет ложной.
__
Изменения в ноябре 2012 года:
1) Поскольку люди склонны смотреть на код и не читать то, что сказано вокруг кода, я добавил две большие заметки лектора предостережения к цитируемому коду Wolf.
2) Я добавил код небольшого плагина, который я использую для этой ситуации.