代码之家  ›  专栏  ›  技术社区  ›  AJFMEDIA

jquery问题,数字从零开始

  •  2
  • AJFMEDIA  · 技术社区  · 16 年前

    在脚本顶部,我创建了一个今天之外的变量:

    <?php $today = date('dmy'); ?>
    

    然后我有一个表,每个表行都有一个“nodate”类或一个六位数的类,这个数字代表一个日期。例如230910(昨天)。

    如果类(六位数)小于今天的日期($today),我将尝试编写一些隐藏表行的jquery。例如,如果230910<240910

    <script type="text/javascript">
        var todaysdate = "<?php echo $today;?>";
        $(document).ready(function() {
            $("#main table tr").each(function() {
                if ($(this).hasClass('nodate')) {
                    $(this).css("background", "blue");
                    } else {                    
                        var expire = (parseInt($(this).attr('class')));
                        alert (expire);
    
                        if (expire < todaysdate) {
                        $(this).css("background", "red");
                    }
                }
            });
    
        });
    </script>
    

    对于测试,我有它,所以如果表行有一个“nodate”类,那么背景将变为蓝色。然后,如果表行日期(六位数)小于当前日期,则变为红色。

    目前,所有六位数字的行都变红了,出于某种原因,如果数字以零开头,那么类的输出就不同了。

    如

    <tr class="<?php $date = "041010";  echo $date; ?>">
    

    输出为16904:s

    有人能帮忙吗?

    2 回复  |  直到 16 年前
        1
  •  6
  •   Guffa    16 年前

    以零开头的数字被解析为八进制数(以8为基数),而不是十进制数(以10为基数)。

    分析数字时指定基数(基数):

    parseInt($(this).attr('class'), 10)
    

    此外,除非您只有同一个月内的日期,否则应使用基于ISO 8601的日期格式(YMD),例如 100924 而不是 240910 .

    如果日期是第一个,你会得到这样的效果 250810 gt; 二十四万零九百一十 .

        2
  •  0
  •   Diodeus - James MacFarlane    16 年前

    var todaysdate = "<?php echo $today;?>"; <---这是一根绳子

    var expire = (parseInt($(this).attr('class')));
    alert (expire);
    

    expire < todaysdate <--将字符串与整数进行比较