如何在jQuery中对日期进行排序

海岸

我在d3.js图中的x轴上有日期,这些日期来自日期选择器,并且从日期选择器中选择的日期显示在x轴上,但未排序。.我想对这些日期进行排序。请建议此处是我的html

<!doctype html>
<html>

<head>
    <meta charset="UTF-8">
    <meta content="utf-8" http-equiv="encoding">

    <title>D3</title>
    <!-- <link rel="stylesheet" type="text/css" href="mystyle1.css" /> -->

    <style>
        body {
            color: #000;
        }

        .axis {
            font: 10px sans-serif;
        }

        .axis path,
        .axis line {
            fill: none;
            stroke: #000;
            shape-rendering: crispEdges;
        }

        .bar {
            fill: steelblue;
        }

        .bar:hover {
            fill: brown;
        }
    </style>

    <script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
    <script src="123.js" type="text/javascript"></script>

<script>
 var thisIsGlobal;
 </script>

</head>
<script src="http://d3js.org/d3.v3.min.js"></script>

<body>
<div id="chart"></div>
<div align="center">
    From : <input type="date" name="field1" id="field1" /> To : <input type="date" name="field2" id="field2" /><br /><br />
    <input type="button" onclick="render(true)" value="Submit" />
</div>

<script>
    var jsonURL = 'avb.json';

    var myData = [];
    var utc=[];

    var margin = {
        top: 20,
        right: 0,
        bottom: 80,
        left: 40
    };
    var width = 500 - margin.left - margin.right;
    var height = 300 - margin.top - margin.bottom;

    var xScale = d3.scale.ordinal().rangeRoundBands([0, width], .1);
    var yScale = d3.scale.linear().range([height, 0]);
    var hAxis = d3.svg.axis().scale(xScale).orient('bottom').tickFormat(d3.time.format("%Y-%m-%d"));
    var vAxis = d3.svg.axis().scale(yScale).orient('left');
    var tooltip = d3.select('body').append('div')
            .style('position', 'absolute')
            .style('background', '#f4f4f4')
            .style('padding', '5 15px')
            .style('border', '1px #333 solid')
            .style('border-radius', '5px')
            .style('opacity', 'o');

    function getDates() {
        return [document.getElementById('field1').value, document.getElementById('field2').value];
    }

    function render(filterByDates) {

        d3.select('svg').remove();

        if (filterByDates) {
            var date1 = new Date(document.getElementById('field1').value);
            var date2 = new Date(document.getElementById('field2').value);

            myData = myData.filter(function(d) {
                return d.date >= date1 && d.date <= date2;
            });
        }

       xScale.domain(myData.map(function(d) {

            return d.date;
        }));

        yScale.domain([0, d3.max(myData, function(d) {
            return d.thisIsGlobal;
        })]);

        var svg = d3.select('#chart').append('svg')
                .attr("width", width + margin.left + margin.right)
                .attr("height", height + margin.top + margin.bottom)
                .append("g")
                .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

        svg
                .append('g')
                .attr("class", "x axis")
                .attr("transform", "translate(0," + height + ")")
                .call(hAxis)
                .selectAll("text")
                .style("text-anchor", "end")
                .attr("dx", "-.8em")
                .attr("dy", "-.55em")
                .attr("transform", "rotate(-90)");

        svg
                .append('g')
                .attr("class", "yaxis")
                .call(vAxis)

        svg
                .selectAll(".bar") //makes bar
                .data(myData)
                .enter().append("rect")
                .attr("class", "bar")
                .style("fill", "steelblue")
                .attr("x", function(d) {
                    return xScale(d.date);
                })
                .attr("width", xScale.rangeBand())
                .attr("y", function(d) {


                    return yScale(d.thisIsGlobal);
                })
                .attr("height", function(d) {

                    console.log("as",d.thisIsGlobal);
                    return height - yScale(d.thisIsGlobal);
                })
                .on('mouseover', function(d) {
                    tooltip.transition()
                            .style('opacity', 1)

                    tooltip.html(d.value)
                            .style('left', (d3.event.pageX) + 'px')
                            .style('top', (d3.event.pagey) + 'px')
                    d3.select(this).style('opacity', 0.5)
                })
                .on('mouseout', function(d) {
                    tooltip.transition()
                            .style('opacity', 0)
                    d3.select(this).style('opacity', 1)
                });
    }

    d3.json(jsonURL, function(data) {

        myData = data;
        myData.forEach(function(d) {

            d.date = new Date(d.date);

            // convert GMT to UTC
            d.date =new Date(d.date.getTime() + (d.date.getTimezoneOffset() * 60000));

            d.name = +d.name;
            console.log(d.date,"Gt date");



        });

        //myData.data.sort();
        console.log(myData,"hello j");

        render(false);
    });
</script>

<label> List of Tables : </label><br>
<form name="myform" id="myForm">
    <div style="height: 30px; width: 50px;">
        <select id="dropdown1"></select>
    </div>
    <style>
        #listbox {
            display: none;
        }
        #listbox {
            position: relative;
        }
    </style>


    <div style="margin-left: 150px; margin-top: -30px; height: auto;">
        <select id="listbox", multiple></select>
    </div>

</form>
</body>
</html>
this is my jquery

$(document).ready(function() {
    $.ajax({
        url: "avb.json",
        dataType: "json",
        success: function(obj) {
            console.log("obj--", obj)
            var jsObject = obj;
            var usedNames = [];
            $('<option>', {
                text: 'Select your Option',
                value: '',
                selected: 'selected',
                disabled: 'disabled',
                location: 'fixed'
            }).appendTo('#dropdown1')
            $.each(obj, function(key, value) {
                if (usedNames.indexOf(value.name) == -1) {
                    $("#dropdown1").append("<option value=" + key + ">" + value.name + "</option>");
                    usedNames.push(value.name);
                }
            });
            $('#dropdown1').change(function() {
                $('#listbox').toggle(this.value != "");
            });

            $('#dropdown1').change(function() {

                $('#listbox').empty();

                $('<option>', {
                    text: 'Select your List Option',
                    value: '',
                    selected: 'selected',
                    disabled: 'disabled'
                }).appendTo('#listbox');

                var selection = $('#dropdown1 :selected').text();
                console.log("as".selection);
                $.each(jsObject, function(index, value) {
                    console.log("%o",value)
                    if (value['name'] == selection) {
                        var optionHtml = '';
                        for (var i = 1; i <=20; i++) {

                            var attr = 'attr' + ('000' + i).substr(-3);
                            var val = 'val' + ('000' + i).substr(-3);

                            optionHtml += '<option value="' + attr + '" data-val="'+value[val]+'">' + value[attr] + '</option>';

                        }


                        $("#listbox").css("width", "500px")

                        $("#listbox").css("height", "300px")
                        $('#listbox').append(optionHtml);
                        return false;
                    }
                    var selectedOption = $(this).find('option:selected');
                    console.log(selectedOption);

                });

            });
            $("#listbox").on("click", function() {

                console.log("asd", $('#listbox option:selected').attr('data-val'));
                var thisIsGlobal =  $('#listbox option:selected').attr('data-val')
                $(".bar").attr("y",thisIsGlobal)
                console.log("test", $(".bar").attr("y",thisIsGlobal))
                $(".bar").attr("height",'10')


            })
        }
    });
});
阿德内

将日期映射到数组后,您可以对该数组进行排序

xScale.domain(
    myData.map(function(d) {
        return d.date;
    }).sort(function(a,b) {
        return a > b;
    })
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您如何在字典中对日期进行排序?

来自分类Dev

如何在mysql中对日期进行排序

来自分类Dev

如何在XSL中对日期排序?

来自分类Dev

如何在动态Pivot SQL Server 2008中对日期进行排序或排序

来自分类Dev

如何在iOS中以升序对日期数组进行排序

来自分类Dev

如何在JavaScript中对日期字符串进行排序(格式示例:2014 7 23)?

来自分类Dev

如何在字符串数组php中对日期时间进行排序

来自分类Dev

如何在Pandas数据框中按行值对日期时间列进行排序?

来自分类Dev

如何使用jQuery在asp.net ListBox中对日期进行排序

来自分类Dev

XSLT:如何对日期进行排序

来自分类Dev

在AngularJS前端中对日期进行排序

来自分类Dev

如何在SQLite中的季度中对日期进行分组

来自分类Dev

如何在Excel中对日期进行条件格式

来自分类Dev

如何在MongoDB中按季度对日期进行分组

来自分类Dev

如何在python中按月对日期进行分组

来自分类Dev

如何对日期进行排序并在Unix中打印排序的数据?

来自分类Dev

如何在JQuery中按日期对xml数据进行排序

来自分类Dev

如何在CellTable GWT中使用空单元格对日期列进行排序

来自分类Dev

如何使用数组中的 moment.js 按降序对日期进行排序

来自分类Dev

MongoDb:如何对日期字段进行汇总,分组和排序?

来自分类Dev

如何使用比较器按降序对日期进行排序

来自分类Dev

如何使用AM | PM对日期文件进行排序

来自分类Dev

如何通过PHP对日期数组进行排序?

来自分类Dev

如何使用AM | PM对日期文件进行排序

来自分类Dev

在R中按日历顺序对日期列进行排序

来自分类Dev

在Javascript中按时间对日期列表进行排序

来自分类Dev

在元组列表中对日期时间对象进行排序

来自分类Dev

您如何在solr中按日期对日期进行分组?

来自分类Dev

如何在熊猫时间序列中按日期对日期进行分组?

Related 相关文章

  1. 1

    您如何在字典中对日期进行排序?

  2. 2

    如何在mysql中对日期进行排序

  3. 3

    如何在XSL中对日期排序?

  4. 4

    如何在动态Pivot SQL Server 2008中对日期进行排序或排序

  5. 5

    如何在iOS中以升序对日期数组进行排序

  6. 6

    如何在JavaScript中对日期字符串进行排序(格式示例:2014 7 23)?

  7. 7

    如何在字符串数组php中对日期时间进行排序

  8. 8

    如何在Pandas数据框中按行值对日期时间列进行排序?

  9. 9

    如何使用jQuery在asp.net ListBox中对日期进行排序

  10. 10

    XSLT:如何对日期进行排序

  11. 11

    在AngularJS前端中对日期进行排序

  12. 12

    如何在SQLite中的季度中对日期进行分组

  13. 13

    如何在Excel中对日期进行条件格式

  14. 14

    如何在MongoDB中按季度对日期进行分组

  15. 15

    如何在python中按月对日期进行分组

  16. 16

    如何对日期进行排序并在Unix中打印排序的数据?

  17. 17

    如何在JQuery中按日期对xml数据进行排序

  18. 18

    如何在CellTable GWT中使用空单元格对日期列进行排序

  19. 19

    如何使用数组中的 moment.js 按降序对日期进行排序

  20. 20

    MongoDb:如何对日期字段进行汇总,分组和排序?

  21. 21

    如何使用比较器按降序对日期进行排序

  22. 22

    如何使用AM | PM对日期文件进行排序

  23. 23

    如何通过PHP对日期数组进行排序?

  24. 24

    如何使用AM | PM对日期文件进行排序

  25. 25

    在R中按日历顺序对日期列进行排序

  26. 26

    在Javascript中按时间对日期列表进行排序

  27. 27

    在元组列表中对日期时间对象进行排序

  28. 28

    您如何在solr中按日期对日期进行分组?

  29. 29

    如何在熊猫时间序列中按日期对日期进行分组?

热门标签

归档