我有多行是从 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/