#jquery #attributes #prop
#jquery #атрибуты #prop
Вопрос:
Я создал страницуздесь
Он отлично работал с версией 1.5
теперь с 1.6 я получаю эту ошибку в firebug
elem.getAttribute is not a function
[Break On This Error] ret = elem.getAttribute( name );
и в chrome почти то же самое
Uncaught TypeError: Object #<HTMLDocument> has no method 'getAttribute'
Как это исправить??
Должен ли я изменить все на prop, как в jquery 1.6 api
http://api.jquery.com/prop /
Комментарии:
1. Что это за вызов jQuery, который приводит к ошибке?
2. Я понятия не имею, что вызвало проблему???
3. Здесь объясняется причина: edgarinvillegas.wordpress.com/2011/05/10 /…
Ответ №1:
Проблема, я думаю, в вашей библиотеке jquery.getUrlParam.js
. Это содержит строки, подобные следующим:
if ($(this).attr("nodeName")=="#document") {
Это работало в jQuery <= 1.5, потому что attr
использовались как свойства, так и атрибуты. jQuery 1.6 устранил эту путаницу, которая создала некоторые проблемы для кода, который полагался на это поведение. Это пример кода, который не работает из-за изменения.
Исправление было бы
if (this.nodeName === "#document") {
Вы должны быть в состоянии исправить это в своем коде; вероятно, также разумно сообщить об этом автору плагина.
Еще один момент заключается в том, что jQuery, вероятно, должен выдавать лучшее сообщение об ошибке при попытке attr
с document
объектом, поскольку document
узел (в отличие от узлов элемента) не имеет getAttribute
метода. Это причина вашего загадочного сообщения об ошибке.
Редактировать 11 мая Похоже, что ошибка здесь исправлена в jQuery 1.6.1. Эта фиксация в источнике jQuery означает, что jQuery возвращается к prop
методу, если у выбранного узла нет getAttribute
метода.
Это, наряду с другими изменениями в 1.6.1, должно сделать обновление с <1.6 до 1.6.1 плавным.
Комментарии:
1. да, это помогло … спасибо за помощь… это была громоздкая библиотека, и я ею не пользовался, хотя…
2. как вы думаете, это ошибка или улучшение jquery… понятия не имею, хотя …;-)
3. Может быть, это полезно для вас: edgarinvillegas.wordpress.com/2011/05/10 /…