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

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

20
задан gnarf 22 April 2010 в 07:57
поделиться

4 ответа

Это выглядит немного странно, но согласно документации .data () возвращает все поля данных как объект, поэтому вы можете изменить его значение напрямую:

$('#id').data('counter', 0);

Оба варианта работают:

$('#id').data().counter++;
$('#id').data()['counter'] += 5;

Получение данных возвращает ожидаемое значение:

alert($('#id').data('counter')); // 6
26
ответ дан 29 November 2019 в 23:48
поделиться

Или, если вы управляете тем, что храните, сохраните ссылку на объект, чтобы вы могли изменять значения в объекте напрямую, используя ++ :

var $elem = $('<div>');
$elem.data('something', {value:1});
$elem.data('something').value++;

console.log($elem.data('something').value); // 2
9
ответ дан 29 November 2019 в 23:48
поделиться
var data = parseInt ($.data("data-attr")) + 1;

$.data("data-attr",data);
4
ответ дан 29 November 2019 в 23:48
поделиться

Я думаю, вам нужно будет прочитать значение и запишите его обратно, так что:

$(element).data('yourKey', $(element).data('yourKey') + 1);

В конце концов, data () - это вызов функции, и увеличение результата не изменит само значение, которое находится во внутренней структуре данных jQuery.

2
ответ дан 29 November 2019 в 23:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: