javascript - 如何在 JQuery 中按字符串日期对选择下拉列表进行排序

标签 javascript jquery

我有一个选择下拉菜单,格式为 dd/MM/yyyy 日期格式,但它也包含一个非日期选项。排序时如何取消非日期选项?

排序功能:

   function str2Date(strD){

    var from = strD.split("/");
    var f = new Date(from[2], from[1] - 1, from[0]);
    return f;
    }


$("#dateSelect  option").sort(function(a, b) {
console.log($(a).val());
   var compA = str2Date($(a).val());
      var compB = str2Date($(b).val());
      return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
});

日期选择:

 <select id='dateSelect'>
       <option value="All">All</option>
       <option value="&nbsp;">&nbsp;</option>
       <option value="01/08/2013">01/08/2013</option>
       <option value="01/11/2010">01/11/2010</option>
       <option value="01/12/2014">01/12/2014</option>
       <option value="02/01/2015">02/01/2015</option>
       <option value="02/03/2015">02/03/2015</option>
       <option value="02/06/2016">02/06/2016</option>
       <option value="02/10/2013">02/10/2013</option>
       <option value="02/11/2011">02/11/2011</option>
    </select>

最佳答案

如果A无效但B有效,则将其放在前面。 如果A有效但B无效,则将其放在后面。

const options = [
  "01/08/2013",
  "01/11/2010",
  "01/12/2014",
  "All",
  "02/01/2015",
  "02/03/2015",
  "&nbsp;",
  "02/06/2016",
  "02/10/2013",
  "02/11/2011",
];

function str2Date(strD) {
  var from = strD.split("/");
  var f = new Date(from[2], from[1] - 1, from[0]);
  return f;
}

function isValidDate(str) {
  return !isNaN(Date.parse(str));
}

options.sort(function (a, b) {
  if (!isValidDate(a) && isValidDate(b)) {
    return -1;
  }
  if (isValidDate(a) && !isValidDate(b)) {
    return 1;
  }

  var compA = str2Date(a);
  var compB = str2Date(b);
  return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
});

console.log(options);

关于javascript - 如何在 JQuery 中按字符串日期对选择下拉列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49052055/

相关文章:

javascript - 替换字符串中的下划线

javascript - jQuery DIV 在悬停时扩展,在鼠标移开时收缩

javascript - 粒子js无法正常工作

javascript - 无法理解 JQuery 扩展对象声明背后的某些语法

jquery - 如何在表格的行周围添加边框

javascript - jquery 和 javascript 不工作

javascript - 使用 JavaScript 获取最近的 <p> 标签文本

javascript - 打印 SSRS 报告时出错

javascript - 使用 jQuery 在隐藏输入上触发按键事件

javascript - 旧版本 IE 上的 Jquery 问题