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