我有多个从JSON填充的行。我正在使用迭代的每个循环。我有一个选择下拉列表中有四个值,其中一个是默认情况。我想根据从下拉列表中选择的值对行进行排序。例如,如果下拉列表值为'x',请使用JSON中的'y'键进行排序。当选择默认值时,页面应该显示为原样。根据选择的下拉值对多行(从JSON填充)进行排序
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>
注:当选择下拉为Active然后排序状态。 2.当选择的下拉列表值是结束日期时,按升序排列按结束日期 3.当下拉值为临近结束日期时,按降序排列结束日期。 4.当dropdon价值是默认然后排序不应该发生
任何人都可以让我知道我做错了,因为排序不会发生在页面中。
谢谢。
什么是你的json的结构?此外,您正在尝试对数组进行排序。但是,您正在使用排序函数内的对象。把完整的数据,以获得帮助 – Mojtaba
我假设你已经设置了'onchange'触发器的'#custom-dropdown'运行sort函数?像[this](https://jsfiddle.net/gb5v6ta4/1/) – tewathia