Я просто не могу окунуться в голову, почему это происходит. Здесь он работает так, как я думаю, он должен работать: http://jsfiddle.net/TD2Yp/5/
Консоль приносит Object {filetype: "first"}
в качестве первого журнала. Но под моей демонстрационной ссылкой:
http://beta.us.lt/demo/, где я делаю то же самое в консоли:
$("#types").data("filetype")
- работает, поскольку возвращает тип файла, но:
$("#types").data() brings:
TypeError: невозможно вызвать метод "split" undefined
Все еще не уверен, в чем разница между этими двумя разными контекстами или как я могу проверить, какие данные содержат элемент под демонстрационной ссылкой.
Вы используете очень старую версию jQuery 1.3.2
Читать .data()
В jQuery 1.4.3 установка элемента данных элемента с.data(obj) расширяет данные, ранее сохраненные с этим элементом. Сам jQuery использует метод.data() для сохранения информации под именами "события" и "дескриптор", а также сохраняет любое имя данных, начиная с подчеркивания ("_") для внутреннего использования.
До jQuery 1.4.3 (начиная с jQuery 1.4) метод.data() полностью заменил все данные, а не просто расширил объект данных. Если вы используете сторонние плагины, может нецелесообразно полностью заменить объект данных элемента, поскольку плагины могут также устанавливать данные.
latest
в настоящее время - 1.10.2, а вы используете 1.3.2 в вашем/demo/
. И перегрузка.data()
которую вы пытаетесь использовать, была добавлена в jQuery 1.4.0. До этого 1-й аргумент не был обязательным. Итак, вам нужно будет использовать более новую версию jQuery, как в скрипте, чтобы использовать это.