You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据日期每月1-5号显示/隐藏li:nth-child(2)元素

问题分析与解决方案

问题1:第一段代码的逻辑错误

你要实现每月1-5日显示第2个列表项,原判断条件if( now <= from || now >= to )会错误地隐藏1日和5日的元素。正确逻辑应该是:当日期小于1或者大于5时隐藏,否则显示。

修正后的第一段代码:

function ShowOnTime(from, to, element){
    var a = new Date(); 
    var now = a.getDate(); 

    // 只有日期在from到to之间(包含边界)时显示
    if( now < from || now > to ){
        $(element).hide();
    }else{
        $(element).show();
    }
}

$(document).ready(function(){
    ShowOnTime(1, 5, "li:nth-child(2)"); // 每月1-5日显示该元素
});

问题2:第二段代码的变量未初始化

第二段代码里var pDate = pDate.getDate();没有先创建Date实例,直接调用getDate()会触发Uncaught TypeError: Cannot read properties of undefined (reading 'getDate')错误,导致代码无法执行。

修正后的第二段代码:

$(document).ready(function() {
    var pDate = new Date(); // 先初始化Date对象
    var day = pDate.getDate();

    // 日期大于5时隐藏,否则显示
    if (day > 5) {
        $("li:nth-child(2)").hide();
    } else {
        $("li:nth-child(2)").show();
    }
});

额外验证点

  • 确认页面已正确引入jQuery库,否则$会报错;
  • 确认列表结构符合预期,li:nth-child(2)确实指向目标元素(比如列表是直接的<ul><li>...</li><li>...</li></ul>结构,没有嵌套其他元素干扰选择器)。

内容的提问来源于stack exchange,提问作者Sal Castanedo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 21:12:43