2016-06-23 2 views
-1

Это получает атрибутнабора прибудет атрибуты данных

console.log(doc.find('[data-monitor="total_gross"]').data('amount')); 

Это должно установить атрибут, но не

doc.find('[data-monitor="total_gross"]').data('amount', total_gross); 

Что я делаю неправильно?

+0

использовать '.attr()' вместо – guradio

+0

Что 'doc'? И имейте в виду, что установка 'data' не будет отображаться в вашем html, его внутреннем jQuery. В противном случае используйте 'attr ('data-amount', total_gross)' вместо 'data'. – eisbehr

+0

Ваш код работает нормально: https://jsfiddle.net/RoryMcCrossan/kj95rfkh/. Пожалуйста, добавьте более подробную информацию о точной проблеме. Обратите внимание, что 'data()' ничего не изменяет в DOM, он просто устанавливает значение в кеш-объекте внутренних данных jQuery. Пока вы используете 'data()' как getter/setter, тогда нет проблем. –

ответ

1

Для обновления в разметке, необходимо использовать attr() метод

doc.find('[data-monitor="total_gross"]').attr('data-amount', total_gross); 

Приведи: jQuery Data vs Attr?

+1

il mark sa dup по ссылке, которую вы дали нормально? – guradio

+0

Он не говорит, что хочет иметь его в разметке. Его оригинальное сообщение даже не ошибается. Поэтому говорить «вам нужно использовать» не так. Он не нуждается в *. Он может ... – eisbehr

+0

Важно указать, что '.data()' -will- обновить атрибут данных и будет доступен позже, а не фактический видимый атрибут элемента DOM – casraf