jQuery не возвращает новый атрибут данных
Я пытаюсь выполнить очень простую задачу, работая с data-attr и jQuery, проверьте этот пример:
наценка:
<div data-name="Testing"></div>
JS
$(function(){
var div = $('div');
$(div).append($(div).data('name'));
$(div).attr('data-name', ' - Testing 2');
$(div).append($(div).data('name'));
console.log(div);
});
Вы можете проверить это здесь:http://jsfiddle.net/YsKJJ/16/
Таким образом, он должен добавить внутриdiv
текстTesting - Testing 2
, но печатаетTestingTesting
, В консоли я проверил, изменился ли attr в объекте, и да, имеет новое значение- Testing 2
но jQuery все еще возвращает исходное значение :(
Любая идея?
ОБНОВИТЬ:
Итак, причина такого поведения в соответствии с документами jQuery:
Атрибуты данных извлекаются при первом обращении к свойству данных, а затем к ним больше не обращаются и не изменяются (все значения данных затем сохраняются внутри в jQuery).
Больше информации:Данные jQuery против Attr?