javascript - 使用 jQuery 根据 id 值隐藏元素

标签 javascript jquery each

我有一个事件列表,并将每个事件的 id 设置为到期日期,因此当日期小于当前日期时,该元素将被隐藏。您可以在下面看到我的代码,看起来我正在丢失在每个函数之外定义的 dateContent 变量的值:

html:

<div class="today"></div>
                        <ul id="20160430" class="nostylelist event-list">
                            <li>Event 1</li>
                            <li>April 29, 2016</li>
                            <li>Minneapolis Convention Center</li>
                            <li>Minneapolis, MN</li>
                            <li>Booth 659</li>
                        </ul>
                        <ul id="20151106" class="nostylelist event-list">
                            <li>Event 2</li>
                            <li>November 4-5, 2015</li>
                            <li>Minneapolis Convention Center</li>
                            <li>Minneapolis, MN</li>
                            <li>Booth 659</li>
                        </ul>

$(function() {
    var today
    var year
    var month
    var monthLength
    var day
    var dateContent

    function currentDate() {
        var today = new Date();
        var year = today.getFullYear();
        var month = today.getMonth()+1;
        var monthLength = month.toString().length;
        var day = today.getDate();
        if (monthLength == 1) {
            dateContent = $('.today').append(year).append('0' + month).append(day);
        } else {
            dateContent = $('.today').append(year).append(month).append(day);
        }
    }
    currentDate();


    $('.event-list').each(function( index ) {
        if ($(this).attr('id') < dateContent) {
            $(this).hide();
        }
        //$('.id').text(dateContent);
    });

});

最佳答案

用此函数替换 currentDate 函数,以获取预期格式的字符串形式的 dateContent。请注意,getFullYear、getMonth 和 getDate 返回数字,因此如果我们想保留格式,则不应直接添加它们。

function currentDate() { 
    var today = new Date();
    var year = today.getFullYear();
    var month = today.getMonth()+1;
    var monthLength = month.toString().length;
    var day = today.getDate();
    if (monthLength == 1) {
        dateContent = "" + year + "0" + month + day;
    } else {
        dateContent = "" + year + month + day;
    }
}

关于javascript - 使用 jQuery 根据 id 值隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36533583/

相关文章:

javascript - 延迟加载背景图像时防止双重请求

javascript - 自动从 100 中减去两个值

javascript - jQuery SlideReveal 不会在加载时显示

ruby - 从 map 返回多个值

Ruby 的 "each"方法没有遍历数组中的所有项目?

javascript - jQuery 比较高度未在高度减小时运行

javascript - 将一个 div 放置在另一个具有动态宽度的 div 的右侧并防止其超出屏幕

javascript - JS 函数在文档加载时仅触发一次

javascript - 获取 json chrome

jquery - 根据导航菜单的大小应用不同的图像