Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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
Javascript仅适用于列表中的一项_Javascript_Jquery_Html_Ruby_Timer - Fatal编程技术网

Javascript仅适用于列表中的一项

Javascript仅适用于列表中的一项,javascript,jquery,html,ruby,timer,Javascript,Jquery,Html,Ruby,Timer,我有一个脚本,从现在算起,直到到期日。我做了一个。每个都列出了预订。每个预订都有一个截止日期。我做的柜台只适用于第一排。。对于其余的行似乎不起作用 我还注意到,当我添加一条新记录时,新记录被另一条记录添加/替换。因为当我添加/删除记录时,我的计时器发生了巨大的变化 下面是代码: 天 高分辨率分光计 mns 秒 函数倒计时(){ var now=新日期(); //var年=; //var月=; //var日=; //var时间=; //var eventDate=新日期(年、月、日、时间

我有一个脚本,从现在算起,直到到期日。我做了一个。每个都列出了
预订
。每个
预订
都有一个
截止日期
。我做的柜台只适用于第一排。。对于其余的行似乎不起作用

  • 我还注意到,当我添加一条新记录时,新记录被另一条记录添加/替换。因为当我添加/删除记录时,我的计时器发生了巨大的变化

下面是代码:


天
高分辨率分光计
mns
秒
函数倒计时(){
var now=新日期();
//var年=;
//var月=;
//var日=;
//var时间=;
//var eventDate=新日期(年、月、日、时间);
var eventDate=新日期(“”);
console.log(现在);
var currentTime=now.getTime();
var eventTime=eventDate.getTime();
console.log(当前时间);
var remTime=事件时间-当前时间;
var s=数学下限(remTime/1000);
var m=数学楼层(s/60);
var h=数学楼层(m/60);
var d=数学楼层(h/24);
h%=24;
m%=60;
s%=60;
h=(h<10)-“0”+h:h;
m=(m<10)-“0”+m:m;
s=(s<10)?“0”+s:s;
document.getElementById(“天”).textContent=d;
document.getElementById(“天”).innerText=d;
document.getElementById(“小时”).textContent=h;
document.getElementById(“分钟”).textContent=m;
document.getElementById(“秒”).textContent=s;
设置超时(倒计时,1000);
};
倒计时();

使用
class

document.getElementsByClassName("example");
HTML中的标识符必须是唯一的
getElementById()
将始终获取第一个元素,因此代码适用于第一行

您可以使用特定的CSS类,然后可以使用它来定位元素。可用于将父元素上下文中的
TD
元素作为目标

在下面的代码段中,任意数据使用
data-*
自定义属性与元素相关联,可以使用

功能倒计时(elem){
var now=新日期(要素数据(‘now’);
var eventDate=新日期(要素数据(“日期”);
var currentTime=now.getTime();
var eventTime=eventDate.getTime();
console.log(当前时间);
var remTime=事件时间-当前时间;
var s=数学下限(remTime/1000);
var m=数学楼层(s/60);
var h=数学楼层(m/60);
var d=数学楼层(h/24);
h%=24;
m%=60;
s%=60;
h=(h<10)-“0”+h:h;
m=(m<10)-“0”+m:m;
s=(s<10)?“0”+s:s;
元素查找(“.天”)。文本(d);
元素查找(“.hours”)。文本(h);
元素查找(“.minutes”)。文本(m);
元素查找(“秒”)。文本;
setTimeout(函数(){
倒计时(elem);
}, 1000);
};
$('.dueDate counter')。每个(函数(){
倒计时($(本))
});

天
高分辨率分光计
mns
秒

HTML中的标识符必须是唯一的
getElementById()
将始终获取第一个元素,因此代码适用于第一行。那么我将使用什么来代替getElementById?您需要重新考虑方法,是否使用jQuery?我认为倒计时部分是jQuery?我不太确定。。在我无法上班之前我试着做的计时器,所以我采用了这种方法。无法让脚本单独附加到每个列表项?您可以使用类标识符而不是Id Selector或获取值的NaN错误。出于这个原因,我按原样编写代码,因为firefox不支持。@MichaelLombardo,检查
elem.data('now')
elem.data('date')
好的,所以
elem.data('now')
在控制台中显示为未定义。
elem.data('date')
显示正确的日期。@MichaelLombardo,您可以使用
var now=new date()进行测试
或update
date now=''
我在某种程度上实现了这一点,但是我没有倒计时,它只是给了我从刷新页面开始的计时器数量。只是保持冰冻。现在的
日期
需要更改为现在的
数据
。。。。这就是错误所在。但我需要帮助让倒计时开始