Javascript 使用jQuery隐藏基于id值的元素

Javascript 使用jQuery隐藏基于id值的元素,javascript,jquery,each,Javascript,Jquery,Each,我有一个事件列表,我将每个事件的id设置为过期日期,因此当日期小于当前日期时,元素将被隐藏。您可以在下面看到我的代码,看起来我正在丢失dateContent变量的值,该变量是在我的each函数之外定义的: html: 事件1 2016年4月29日 明尼阿波利斯会议中心 明尼苏达州明尼阿波利斯市 659号展位 事件2 2015年11月4日至5日 明尼阿波利斯会议中心 明尼苏达州明尼阿波利斯市 659号展位 $(函数(){ 今日var 风险年 风险月 var monthLength var

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

html:


  • 事件1
  • 2016年4月29日
  • 明尼阿波利斯会议中心
  • 明尼苏达州明尼阿波利斯市
  • 659号展位
  • 事件2
  • 2015年11月4日至5日
  • 明尼阿波利斯会议中心
  • 明尼苏达州明尼阿波利斯市
  • 659号展位
$(函数(){ 今日var 风险年 风险月 var monthLength var日 日期内容变量 函数currentDate(){ var today=新日期(); var year=today.getFullYear(); var month=today.getMonth()+1; var monthLength=month.toString().length; var day=today.getDate(); 如果(月长==1){ dateContent=$('.today')。追加(年)。追加('0'+月)。追加(日); }否则{ dateContent=$('.today')。追加(年)。追加(月)。追加(日); } } currentDate(); $('.event list')。每个(函数(索引){ if($(this.attr('id')
我想您希望dateContent保留当前日期。但是,您要做的是将当前日期(例如20160410)设置为.today,并且追加的返回值是一个DOM元素,而不是值20160410


因此,即使与attr('id')进行比较也不起作用。

我认为您希望dateContent保留当前日期。但是,您要做的是将当前日期(例如20160410)设置为.today,并且追加的返回值是一个DOM元素,而不是值20160410


因此,即使是与attr('id')的比较也不起作用。

用该函数替换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;
    }
}

将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;
    }
}

$(函数(){
今日var
风险年
风险月
var monthLength
var日
日期内容变量
函数currentDate(){
var today=新日期();
var year=today.getFullYear();
var month=today.getMonth()+1;
var monthLength=month.toString().length;
var day=today.getDate();
如果(月长==1){
$('.today').append(年)。append('0'+月)。append(日);
dateContent=年+0'+月+日;
}否则{
$('.today').append(年).append(月).append(日);
日期内容=年+月+日;
}
}
currentDate();
$('.event list')。每个(函数(索引){
console.log(dateContent);
console.log($(this.attr('id'));
if($(this.attr('id')

$(函数(){
今日var
风险年
风险月
var monthLength
var日
日期内容变量
函数currentDate(){
var today=新日期();
var year=today.getFullYear();
var month=today.getMonth()+1;
var monthLength=month.toString().length;
var day=today.getDate();
如果(月长==1){
$('.today').append(年)。append('0'+月)。append(日);
dateContent=年+0'+月+日;
}否则{
$('.today').append(年).append(月).append(日);
日期内容=年+月+日;
}
}
currentDate();
$('.event list')。每个(函数(索引){
console.log(dateContent);
console.log($(this.attr('id'));
if($(this.attr('id')
.append()
用于元素,而不是连接字符串。
.append()
用于元素,而不是连接字符串。谢谢!这很有效。将dateContent作为字符串获取是我一直在努力解决的问题。我试过年+月+日,但那只会把数字加在一起。谢谢!这很有效。将dateContent作为字符串获取是我一直在努力解决的问题。我尝试了年+月+日,但那只是将数字相加。
<script>
    $(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) {
                $('.today').append(year).append('0' + month).append(day);
                dateContent = year + '0' + month + day;
            } else {
                $('.today').append(year).append(month).append(day);
                dateContent = year + month + day;
            }

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

    });