我有多個從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