Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多次调用jQuery函数,并且只对同级执行相关操作_Jquery_Html_Arrays_Alert - Fatal编程技术网

多次调用jQuery函数,并且只对同级执行相关操作

多次调用jQuery函数,并且只对同级执行相关操作,jquery,html,arrays,alert,Jquery,Html,Arrays,Alert,我正在做一个清单,在这个清单中,你可以添加/删除任务,并为每个任务设置一个截止日期。当截止日期等于当前时间时,将显示警报 当只有一个任务时,它工作正常,但如果我有更多任务,它只会显示第一个任务的警报 确认警报后,将取消选中任务的警报复选框(右侧的绿色框),但这会使所有任务的警报复选框取消选中,而不是仅选中一个已确认的复选框 我猜这需要用数组来完成,但我无法让它工作。。有人知道如何解决这个问题吗 提前发送 我正在链接到我在这里得到的所有东西 HTML: + 列表 新名单 

我正在做一个清单,在这个清单中,你可以添加/删除任务,并为每个任务设置一个截止日期。当截止日期等于当前时间时,将显示警报

当只有一个任务时,它工作正常,但如果我有更多任务,它只会显示第一个任务的警报

确认警报后,将取消选中任务的警报复选框(右侧的绿色框),但这会使所有任务的警报复选框取消选中,而不是仅选中一个已确认的复选框

我猜这需要用数组来完成,但我无法让它工作。。有人知道如何解决这个问题吗

提前发送

我正在链接到我在这里得到的所有东西

HTML:


+ 列表
新名单
+
jQuery(唯一出错的部分,请参阅整个文档的fiddle)

setInterval(函数checkAlerts(){
//设置当前日期和时间
变量日期=新日期();
var month=date.getMonth()+1;
var day=date.getDate();
var hours=date.getHours();
var minutes=date.getMinutes();
var currentDate=date.getFullYear()+'-'+
(''+月).长度给你

主要的变化是

$.each($('.alert_status:checked'), function (index, value) {
   var currentAlert = $(this);
   // your code...
}

基本问题是,当向DOM添加数据或附加项时,计时器不知道。我添加了一个控制台日志语句,并且从来没有定义taskDeadline。我应该说,从来没有为所附加的列表项定义taskDeadline。您可能需要重新考虑您的逻辑以使其工作。a\Io注意到右侧的复选框没有保持选中状态,这也会导致问题。好的,我会进一步尝试。单击“确定”后复选框被取消选中的原因是您看到了警报。单击“取消”时,它保持选中状态。但我想我需要一种不同的方法来解决此问题。是的,我没有看到警报。您需要为了确保用户理解正在发生的事情,它需要直观。是的-你需要能够接受任何日期格式,然后将其转换为你想要使用的格式。或者使用日期选择器。
setInterval(function checkAlerts(){
//Set current date & time
var date = new Date();
var month = date.getMonth()+1;
var day = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var currentDate = date.getFullYear() + '-' +
((''+month).length<2 ? '0' : '') + month + '-' + ((''+day).length<2 ? '0' : '') + day + 'T' + ((''+hours).length<2 ? '0' : '') + hours + ':' + ((''+minutes).length<2 ? '0' : '') + minutes;

//Set task deadline
var taskDeadline = $('.alert_status:checked').parent().find("input[type='datetime-local']").val();
//Set task text
var taskText = $('.alert_status:checked').parent().children('p').html()
//Check if task deadline matched current time
if ( currentDate ==  taskDeadline) {
    //If so, give an alert
    if(confirm( taskText ) ){
        //If confirmed, uncheck task alert
        $('.alert_status:checked').prop('checked', false)
    }
    else{
        //Do nothing
    }
};

}, 3000);
$.each($('.alert_status:checked'), function (index, value) {
   var currentAlert = $(this);
   // your code...
}