Javascript 将数组推入对象Javascipt

Javascript 将数组推入对象Javascipt,javascript,Javascript,我试图用chartJS开发一个图表,但我的问题是关于javascript的基本问题 我的html代码是 <div class="static-spline-chart-1" data-points='[ { x: new Date(2017, 0, 3), y: 650 }, { x: new Date(2017, 0, 4), y: 700 },

我试图用chartJS开发一个图表,但我的问题是关于javascript的基本问题

我的html代码是

<div class="static-spline-chart-1" data-points='[
                                    { x: new Date(2017, 0, 3), y: 650 },
                                    { x: new Date(2017, 0, 4), y: 700 },
                                    { x: new Date(2017, 0, 5), y: 710 },
                                    { x: new Date(2017, 0, 6), y: 658 },
                                    { x: new Date(2017, 0, 7), y: 734 },
                                    { x: new Date(2017, 0, 8), y: 963 },
                                    { x: new Date(2017, 0, 9), y: 847 },
                                    { x: new Date(2017, 0, 10), y: 853 },
                                    { x: new Date(2017, 0, 11), y: 869 },
                                    { x: new Date(2017, 0, 12), y: 943 },
                                    { x: new Date(2017, 0, 13), y: 970 },
                                    { x: new Date(2017, 0, 14), y: 869 },
                                    { x: new Date(2017, 0, 15), y: 890 },
                                    { x: new Date(2017, 0, 16), y: 930 }
                                ] '></div>
<div class="static-spline-chart-1" data-points='[
                                    { x: new Date(2017, 0, 3), y: 650 },
                                    { x: new Date(2017, 0, 4), y: 700 },
                                    { x: new Date(2017, 0, 5), y: 710 },
                                    { x: new Date(2017, 0, 6), y: 658 },
                                    { x: new Date(2017, 0, 7), y: 734 },
                                    { x: new Date(2017, 0, 8), y: 963 },
                                    { x: new Date(2017, 0, 9), y: 847 },
                                    { x: new Date(2017, 0, 10), y: 853 },
                                    { x: new Date(2017, 0, 11), y: 869 },
                                    { x: new Date(2017, 0, 12), y: 943 },
                                    { x: new Date(2017, 0, 13), y: 970 },
                                    { x: new Date(2017, 0, 14), y: 869 },
                                    { x: new Date(2017, 0, 15), y: 890 },
                                    { x: new Date(2017, 0, 16), y: 930 }
                                ] '></div>
但是我得到了这样一个错误
jquery.js:2未捕获的类型错误:chartClassElements[i]。数据不是函数。
如何在for循环中获取该类的数据属性?在获得数据后,我如何获得上述类型的对象?

更改
chartClassElements[i]。数据('points')


RenderStaticSplineChart
函数中,而不是在chartClassElements[i]中。数据('points')) 试一试


但是您仍然对代码的其余部分有问题。上述代码的返回不在数组中。这是一个简单的文本。您可以用一些落后的语言将这些数据点放在html中。尝试jsonify或序列化它。因此,当您使用js阅读它之后,只需反序列化或解析json,就可以返回真正的数组

您应该使用
chartClassElements[i].dataset.points
访问
数据属性
    var StaticSplineChartOptions = {
    backgroundColor: "transparent",
    axisY: {
        lineThickness: 0,
        includeZero: false,
        gridThickness: 0,
        tickLength: 0,
        lineThickness: 0,
        labelFontSize:0,
        margin:-20,
    },
    axisX: {
        labelFontSize:0,
        lineThickness: 0,
        includeZero: false,
        gridThickness: 0,
        tickLength: 0,
        lineThickness: 0,
    },
    tickThickness: 0,

}
function RenderStaticSplineChart(className,options) {
    var charts = [];
    var chartClassElements = document.getElementsByClassName(className);
    for (var i = 0; i < chartClassElements.length; i++) {
        var dataPoints = chartClassElements[i].data('points');
        options.push({
            data: [{
                color: '#fff',
                type: "spline",
                markerSize: 0,
                dataPoints: dataPoints,
            }]
        });
        charts.push(new CanvasJS.Chart(chartClassElements[i], options));
        charts[i].render();
    }
}

RenderStaticSplineChart("static-spline-chart-1", StaticSplineChartOptions);
var StaticSplineChartOptions = {
    backgroundColor: "transparent",
    axisY: {
        lineThickness: 0,
        includeZero: false,
        gridThickness: 0,
        tickLength: 0,
        lineThickness: 0,
        labelFontSize:0,
        margin:-20,
    },
    axisX: {
        labelFontSize:0,
        lineThickness: 0,
        includeZero: false,
        gridThickness: 0,
        tickLength: 0,
        lineThickness: 0,
    },
    tickThickness: 0,
    data: [{
        color: '#fff',
        type: "spline",
        markerSize: 0,
        dataPoints: [
            { x: new Date(2017, 0, 3), y: 650 },
            { x: new Date(2017, 0, 4), y: 700 },
            { x: new Date(2017, 0, 5), y: 710 },
            { x: new Date(2017, 0, 6), y: 658 },
            { x: new Date(2017, 0, 7), y: 734 },
            { x: new Date(2017, 0, 8), y: 963 },
            { x: new Date(2017, 0, 9), y: 847 },
            { x: new Date(2017, 0, 10), y: 853 },
            { x: new Date(2017, 0, 11), y: 869 },
            { x: new Date(2017, 0, 12), y: 943 },
            { x: new Date(2017, 0, 13), y: 970 },
            { x: new Date(2017, 0, 14), y: 869 },
            { x: new Date(2017, 0, 15), y: 890 },
            { x: new Date(2017, 0, 16), y: 930 }
        ] 
    }]
}
chartClassElements[i].dataset.points
chartClassElements[i].attr('data-points')