Javascript 如何将值附加到存储在元素中的自定义数据

Javascript 如何将值附加到存储在元素中的自定义数据,javascript,jquery,attributes,Javascript,Jquery,Attributes,假设我想在元素中存储一些自定义值,我需要: $('div').data('k','v'); 但现在我需要向该元素添加更多数据:v2 我能想到的唯一方法是以某种方式存储或引用以前的数据,并附加到其中,但这看起来既不是最好的方法,也不是最有效的方法: $('div').data('k','v'); var prevData = $('div').data('k'); $('div').data('k',prevData + ',v2'); alert($('div').data('k')); 这

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

$('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
,但这是正确的方法吗?

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

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

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

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

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

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

如果您使用数组作为
数据
atribute,您可以这样做

$('.selector').data('list', []);
$('.selector').data('list').push(1);
$('.selector').data('list').push(2);
$('.selector').data('list'); // Will return [1,2]

如果使用数组作为
数据
atribute,则可以执行此操作

$('.selector').data('list', []);
$('.selector').data('list').push(1);
$('.selector').data('list').push(2);
$('.selector').data('list'); // Will return [1,2]

仅供参考,根据文档,自jQuery 1.4.3以来,设置数据将对其进行扩展。因此,行
$('.selector').data('test',list),因为您的
列表已经引用了它。参考:太棒了,谢谢!很抱歉延迟接受。。。我没有互联网连接!仅供参考,根据文档,自jQuery 1.4.3以来,设置数据将对其进行扩展。因此,行
$('.selector').data('test',list),因为您的
列表已经引用了它。参考:太棒了,谢谢!很抱歉延迟接受。。。我没有互联网连接!