Я подозреваю, что вы запускаете скрипт на странице, которая использует другую платформу JS, вероятно, Prototype.js.
Если бы Prototype был включен на целевой странице, он переписал бы вашу копию jQuery $
своей собственной, которая получает элемент по идентификатору, а не по селектору. Поскольку нет элемента с идентификатором #area_19
(#
не является допустимым символом в идентификаторе), он вернет null
. jQuery никогда не вернет null
для несуществующего элемента, вы получите только пустой объект-обертку.
(Код $(document).ready()
все равно будет выполняться, потому что $
был вызван до включения прототипа и изменил поведение $
.)
Попробуйте использовать явную функцию jQuery
вместо ярлыка $
.
Такие помехи распространены при смешивании нескольких платформ или даже при смешивании двух копий / версий одной и той же платформы. Со стороны jQuery его взаимодействия можно уменьшить, но не исключить, с помощью noConflict . Лично для такого кода, как пользовательские сценарии, которые могут жить в широком диапазоне контекстов, не контролируемых мной, я бы избегал использования таких разнообразных сред, как jQuery.