1

假设我想在一个元素中存储一些自定义值,我需要:

$('div').data('k','v');

但现在我需要向该元素添加更多数据:v2.

我能想出的唯一方法是以某种方式存储或引用以前的数据,并附加到它,但它看起来不是最好的方法,也不是最有效的:

$('div').data('k','v');
var prevData = $('div').data('k');
$('div').data('k',prevData + ',v2');
alert($('div').data('k'));

这将发出警报v,v2,但这是正确的方法吗?

4

2 回答 2

3

您可以使用列表作为data属性:

$('.selector').data('test', []);
var list = $('.selector').data('test');
list.push('foo')

data-它非常有用,还因为您可以在页面生成时用 HTML 中的 JSON填充属性,并.data()自动将它们转换为普通的 JS 对象。

于 2013-04-24T20:02:05.637 回答
2

如果你使用数组作为data属性,你可以这样做

$('.selector').data('list', []);
$('.selector').data('list').push(1);
$('.selector').data('list').push(2);
$('.selector').data('list'); // Will return [1,2]
于 2013-04-24T20:05:58.140 回答