javascript - 根据所选的选择下拉值对多行(从 JSON 填充)进行排序

标签 javascript jquery

我有多行是从 JSON 填充的。我使用每个循环进行迭代。我有一个选择下拉列表,其中有四个值,其中一个是默认情况。我想根据从下拉列表中选择的值对行进行排序。例如,如果下拉列表值为“x”,则使用 JSON 中的“y”键排序。选择默认值时,页面应按原样显示.

jsonData.jsonArray.sort(function(a, b) {
            if ($( "#custom-dropdown" ).val()=="Active") {
                return (b.status> a.status) ? 1 : ((a.status< b.status) ? -1 : 0);
            } else if ($( "#custom-dropdown" ).val()=="End date") {
                return (b.endDate > a.endDate) ? 1 : ((b.endDate < a.endDate) ? -1 : 0);
            } else if ($( "#custom-dropdown" ).val()=="Nearest end date"){
                return (b.endDate > a.endDate) ? 1 : ((b.endDate < a.endDate) ? -1 : 0);
            } else{
                return 0;
            }
        });

JSON-

 var jsonData={
  "status": "200", 
  "jsonArray": [
    {
      "startDate": "2014-05-27",,
      "status": "true",  
      "endDate": "2016-05-27",
    },
    {
      "startDate": "2012-05-27",,
      "status": "false",  
      "endDate": "2013-05-27",

    }
  ]

} 选择下拉结构-

<div id="custom-dropdown">
             <select class="selectpicker">
                  <option data-divider="true">Default</option>
                  <option data-divider="true">Active</option>
                  <option data-divider="true">End date</option>
                  <option data-divider="true">Nearest end date</option>
            </select>
        </div>

注意:当选定的下拉值处于“事件”状态时,则按状态排序。 2.当选择的下拉值为结束日期时,则按结束日期升序排序 3.当下拉值接近结束日期时,按结束日期降序排序。 4.当 dropdon vale 为默认值时,不应进行排序

任何人都可以让我知道我做错了什么,因为页面中没有进行排序。

谢谢。

最佳答案

似乎对我有用。 Here是一个示例 fiddle ,显示了排序数据的简单字符串化。我刚刚添加了一个触发器,用于在下拉列表中的值更改时重新填充

$("#custom-dropdown").on("change", function() {
  populate(this.value);
});

关于javascript - 根据所选的选择下拉值对多行(从 JSON 填充)进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38917528/

相关文章:

javascript - click()时获取类的值

javascript - 如何在重新排序 DOM 后重新绘制和重新组织 Isotope 容器中的元素?

javascript - 我的变量拒绝在我的 Div 中显示

php - 如何使用 PHP 和 jQuery 将 DIV 标签保存到 MySQL

JavaScript 温度转换函数不起作用

javascript - 对 Google map 进行皮肤处理,使其看起来像原生 Google map iPhone 应用程序

javascript - 了解 Crockford 介绍的高级方法

javascript - 将 JSON 对象传递到另一个页面

javascript - 为什么 parseInt(key) === NaN 总是求值为 false

javascript - 如何使用 jQuery 判断用户是否可以滚动?