2014-01-27 33 views
0

我一直在为此奋斗一段时间,似乎无法找到正确的语法。使用jQuery变量设置一个HTML5数据数组

如果我有这些变量在JS声明:

var width = 300, 
    height = 200, 
    time = 100; 

和一些HTML:

<div class="target">Target</div> 

如何使用jQuery来设置这些增值经销商HTML5格式的数据数组到目标格状所以:

<div class="target" data-stuff='["300","200","100"]'>Target</div> 
+0

下面的答案是好的,但我建议你做的数据宽度,数据高,数据时间...它是少的时候解析你想处理数据。 –

回答

0

要插入数据的属性到HTML的内容,你需要使用.attr()方法:

$('.target').attr('data-stuff', '['+[width, height, time].toString()+']'); 

若要将数据设置为元素,而不需要实际设置在HTML的属性,使用.data()

$('.target').data('stuff', [width, height, time]); 

并检索任一的这两个,使用的值:

$('.target').data('stuff') 

这将在这两种情况下返回数组[300, 200, 100]。这个脚本的演示可以看到here。只要打开你的控制台(在Chrome浏览:CTRL ++Ĵ,在Internet Explorer中:F12,然后按Ctrl +),你会看到2个阵列的底部都有。

1

如何:

a = $(".target").data("stuff"); 

var width = a[0], 
    height = a[1], 
    time = a[2]; 

更新

如果你想设置的变量在HTML数据属性,只是:

$(".target").data("stuff", [width, height, time]); 
+0

我在jsFiddle中测试,它似乎不工作。我在这里做错了什么吗? http://jsfiddle.net/9rcws/ – kthornbloom

+0

塞尔吉奥,我想你误解了这个问题。问题是如何设置data-stuff属性,而不是如何设置var与data-stuff属性的值。 – Joeytje50

+0

看看这里:http://jsfiddle.net/FWSuE/ –

0

试试这个:

var width = 300, 
height = 200, 
time = 100; 

$(".target").data("myarray", [width, height, time]); 

console.log($(".target").data("myarray")); 

fiddle