Ответ 1
Когда вы используете . data() для обновления значения данных, он обновляет внутренний объект, управляемый jQuery, поэтому он не будет обновляться в атрибуте data-*
Я обновляю атрибут данных с помощью jQuery, Like:
jQuery('div').data('hidden', 'true');
alert(jQuery('div').data('hidden'));
Значение атрибута данных изменилось и возвращено новое значение, которое равно true
, но DOM все еще показывает старое значение, которое равно false
.
Когда вы используете . data() для обновления значения данных, он обновляет внутренний объект, управляемый jQuery, поэтому он не будет обновляться в атрибуте data-*
Я так плохо бил вокруг куста:( и смог решить проблему. Швы вроде того, что мы не можем добиться этого, используя метод данных jquery, если html является динамическим, а атрибут данных изменился позже после первого доступа.
Согласно jQuery.data()
Атрибуты данных вытягиваются в первый раз, когда свойство данных доступ к ним и затем больше не доступны или не изменяются (все значения данных затем сохраняются внутри jQuery).
Итак, что я сделал, изменил его на метод attr, который не даст вам разобранное значение для integer, поэтому вам нужно использовать операнд "+" для преобразования, например:
+ myElement.attr('data-index');
Примечание. Вы должны быть осторожны, он преобразует результат в NaN, если в данных attr есть какая-либо строка. Кстати, это ваш выбор реализации кода.