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

JQuery.data(): возможно увеличить (++ или -)?

Каков наилучший способ увеличить значение в объекте jQuery .data()?

4b9b3361

Ответ 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++)