Это выглядит как ошибка в JQuery. Исключение выдается в строке 605 в 1.5.1:
nodeName: function( elem, name ) {
return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
},
Функция возвращает true, если имя узла объекта elem
совпадает со строкой name
. Если нет, или если имя узла elem
отсутствует, мы возвращаем false. Однако elem
не тестируется перед использованием. Поэтому, если elem
равно нулю, вызов его члена .nodeName
вызывает исключение нулевого указателя.
Простое исправление состоит в том, чтобы включить elem
в начале предложения короткого замыкания AND :
return elem && elem.nodeName && elem.nodeName.toUpperCase()...
Теперь, если elem
равно нулю, функция вернет false при первом тесте в предложении и никогда не попытается вызвать elem.nodeName
, избегая, таким образом, NPE.
Я не проверял их все (часто используется), но во многих случаях, когда используется эта функция, elem
проверяется перед вызовом функции. Но не во всех случаях, по-видимому.