Подтвердить что ты не робот

Установка динамического значения атрибутов данных с помощью jquery

Я использую атрибуты данных для управления данными в событиях на стороне клиента. Можно ли динамически присваивать значение атрибуту данных с помощью javascript или jquery?

<li data-class_value="somevalue" class="myclass"></li>


$('.myclass').click(function(){
   $(this).data('class_value') = "new value";
});

Вышеупомянутый код javascript вызывает ошибку:

"Неподключить ReferenceError: Недопустимая левая сторона в назначении".

Может ли кто-нибудь рассказать мне, как это может быть достигнуто?

4b9b3361

Ответ 1

Вам нужно сделать

 $(this).data('class_value', "new value");

Ответ 2

Я считаю, что приведенные выше ответы только установили объект данных в этот элемент в jQuery.

Если вам нужно установить фактический атрибут data-* HTML, вам нужно будет использовать это:

$(this).attr("data-class_value", "new value");

Остерегайтесь также извлекать атрибуты данных HTML5 *, так как, хотя вы можете использовать ярлык $(this).data("class_value"); для их получения, последующие извлечения будут использовать кешированное значение в объекте данных jQuery.

Из jQuery docs:

Атрибуты данных вытягиваются при первом доступе к свойствам данных, а затем больше не доступны или не изменяются (все значения данных затем сохраняются внутри jQuery).

Источник: jQuery кэширование атрибутов данных

Ответ 3

$(this).data('class_value','new value') ;

.data