Что лучший способ состоит в том, чтобы увеличить значение в jQuery .data()
объект?
Это выглядит немного странно, но согласно документации .data ()
возвращает все поля данных как объект, поэтому вы можете изменить его значение напрямую:
$('#id').data('counter', 0);
Оба варианта работают:
$('#id').data().counter++;
$('#id').data()['counter'] += 5;
Получение данных возвращает ожидаемое значение:
alert($('#id').data('counter')); // 6
Или, если вы управляете тем, что храните, сохраните ссылку на объект, чтобы вы могли изменять значения в объекте напрямую, используя ++
:
var $elem = $('<div>');
$elem.data('something', {value:1});
$elem.data('something').value++;
console.log($elem.data('something').value); // 2
var data = parseInt ($.data("data-attr")) + 1;
$.data("data-attr",data);
Я думаю, вам нужно будет прочитать значение и запишите его обратно, так что:
$(element).data('yourKey', $(element).data('yourKey') + 1);
В конце концов, data ()
- это вызов функции, и увеличение результата не изменит само значение, которое находится во внутренней структуре данных jQuery.