当我使用"=="时,为什么datepicker突出显示不起作用?

An *_*ack 5 javascript css jquery jquery-ui reference

   .Highlighted a{
   background-color : Green !important;
   background-image :none !important;
   color: White !important;
   font-weight:bold !important;
   font-size: 9pt;

}


  $(document).ready(function () {

                var date1 = new Date(2014, 5, 6);
                var date2 = new Date(2014, 5, 17);

                $('#datepicker').datepicker({

                   dateFormat: "mm/dd/yy",

                   beforeShowDay: function (date) {


                       if (date == date1 ) {

                            return [true, 'Highlighted', 'Available Date'];
                        }
                        return [false, '', ''];
                    }
                });
        });
Run Code Online (Sandbox Code Playgroud)

这个不起作用,因为date==date1.如果我改成它date<=date1,它工作正常.我认为javascript是一种弱类型语言,它比较内容,而不是引用.我不想做类似的事情(date.getDay==date1.getDay &&....).是否有更简单的方法来比较这些值?

Sha*_*k D 5

演示小提琴

使用+一元运算符(引用)将值转换为数值以进行比较.

一元+运算符将其操作数转换为数字类型.


if (+date === +date1 ) {

      return [true, 'Highlighted', 'Available Date'];
}
Run Code Online (Sandbox Code Playgroud)

要么

if (!(date - date1)) {

      return [true, 'Highlighted', 'Available Date'];
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢@canon的加入. (2认同)