data
функция управляет кэшем данных для элемента, который обеспечивает JQuery, не data-*
атрибутов. Только взаимосвязь между data
функции и data-*
атрибутами в том, что data
будет инициализировать кэш информации из data-*
атрибутов, если вы запрашиваете ключ, соответствующий атрибут data-*
.
Использование data
до набор данные никогда не будут обновлены атрибутом data-*
.
Это хорошо использовать attr
для обновления атрибута, вам просто нужно быть последовательным: либо использовать атрибут (через attr
) как для получения и установки, или использование data
как для получения и установки, так как они управлять разными вещами.
Использование attr
означает, что вы действительно обновляете атрибут элемента, что означает, что вы можете использовать значения, заданные в селекторах и т. Д. (Как CSS, так и jQuery), но также означает, что вы ограничены получением и установкой только строки значения.
Использование data
означает, что вы только обновление кэша данных, а не элемент, а значит, вы не можете использовать эти значения селекторов и такие (потому что они нигде не хранятся в DOM), а значит вы можете получить и установить полный диапазон типов данных JavaScript.
При использовании '.data()' данные хранятся во внутренней структуре данных в jQuery, поэтому смешивание этих 2 не работает. –
Это '$(). Data' считывает начальное значение атрибутов data- * это просто удобная функция. Используйте все, что хотите, до тех пор, пока вы согласны. –