流程数据属性:如何序列化

时间:2014-05-26 19:49:11

标签: javascript jquery ruby-on-rails

我尝试使用jquery插件创建HTML图表,并且我使用HTML5数据属性将数据从我的rails应用程序传递到jquery函数。

我的html,在ruby哈希转换后,是这样的:

<div class="chart" data-contents-01="0" data-contents-02="1" data-contents-03="3" data-contents-04="0" data-contents-05="0" data-contents-06="0" data-contents-07="0" data-contents-08="0" data-contents-09="0" data-contents-10="0" data-contents-11="0" data-contents-12="0" data-contents-13="0" data-contents-14="0" data-contents-15="0" data-contents-16="0" data-contents-17="0" data-contents-18="0" data-contents-19="0" data-contents-20="0" data-contents-21="0" data-contents-22="0" data-contents-23="2" data-contents-24="1" data-contents-25="4" data-contents-26="0" data-contents-27="0" data-contents-28="0" data-contents-29="2" data-contents-30="2" data-contents-31="0" id="chart_2" style="padding: 0px; position: relative;">

如果data-contents-xx我有很多,我必须将这些数据转换为数组数组。

我的功能将数据视为:

 var contents = [
                    [x, y],
                    [x,y]
                ];

所以我必须处理我的数据属性以拥有一个数组数组,其中每个子数组都是几个data-contents-x

如何序列化我的数据属性?

1 个答案:

答案 0 :(得分:0)

JQuery方法.data()将所有数据对象拉入一个key:value对数组。使用您的元素名称:

$('.chart').data();

例如,给定:

<div class="chart" data-foo="1" data-bar="2"></div>

使用:

var data = $('.chart').data();

for(var i in data){
    console.log("data attribute - " + i + ":" + data[i]);
}

这里是小提琴:http://jsfiddle.net/WVfSg/260/

在小提琴中播放代码时,它不起作用。但是,当我摆脱第二个连字符时,它按预期工作。