Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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 AddClass以匹配语句_Javascript_Jquery - Fatal编程技术网

Javascript AddClass以匹配语句

Javascript AddClass以匹配语句,javascript,jquery,Javascript,Jquery,我试图将tbody分配到两个不同类中的一个。我似乎无法运行if语句,也许我没有正确使用语法? 条件1:如果tbody id=today(yyyymm),则添加类“current” 条件2:如果主体id今天(yyyymm),则添加“不执行任何操作” $(函数(){ var d=新日期(); 变量月份=d.getMonth()+1; var day=d.getDate(); var output=d.getFullYear()+(month您需要做的是检查每个tbody是否有匹配的id 原始语法

我试图将
tbody
分配到两个不同类中的一个。我似乎无法运行if语句,也许我没有正确使用语法?


条件1:如果tbody id=today(yyyymm),则添加类“current”
条件2:如果主体id<今天(yyyymm),则添加类“过去”
条件3:如果tbody id>今天(yyyymm),则添加“不执行任何操作”

$(函数(){
var d=新日期();
变量月份=d.getMonth()+1;
var day=d.getDate();

var output=d.getFullYear()+(month您需要做的是检查每个
tbody
是否有匹配的
id

原始语法
var checktbody=$('tbody').attr('id');
只从所有tbodie中获取一个
tbody

因此,您需要做的是在纯JavaScript中使用
for循环
,如果在jQuery中,则使用一个

$(函数(){
var d=新日期();
变量月份=d.getMonth()+1;
var day=d.getDate();

var output=d.getFullYear()+(month您需要做的是检查每个
tbody
是否有匹配的
id

原始语法
var checktbody=$('tbody').attr('id');
只从所有tbodie中获取一个
tbody

因此,您需要做的是在纯JavaScript中使用
for循环
,如果在jQuery中,则使用一个

$(函数(){
var d=新日期();
变量月份=d.getMonth()+1;
var day=d.getDate();

var output=d.getFullYear()+(月首先,抓取页面上的每个
tbody
,并使用
$遍历每个体。每个

$.each( $("tbody"), function(index, el) { ... });
为了实现您所述的3个条件,我们必须重新考虑应用程序当前的编码方式。现在,您正在比较字符串,以查看元素的日期是当前日期还是过去日期

更好的方法是使用
Date
对象来方便日期比较

请参见下面的代码。我们使用正则表达式从每个
tbody
id
中提取年和月,并使用它创建一个
Date
对象,然后将其与今天的
Date
对象进行比较:

$(函数(){
var now=new Date();//今天的日期
var nowYear=now.getFullYear();
var nowMonth=now.getMonth();
var today=新日期(现在年份,现在月份);
var todayTime=today.getTime();//以毫秒为单位获取今天,以便运行比较
$。每个($(“tbody”)函数(索引,el){
变量$el=$(el);
变量id=$el.attr('id');
//使用正则表达式获取年、月、日
var rxArr=id.match(/(\d{4})(\d{2})/);
风险年=rxArr[1];
var month=parseInt(rxArr[2])-1;//我们需要month-1来传递给Date对象
var elDate=新日期(年、月);
var elDateTime=elDate.getTime();//返回毫秒,因此我们运行比较
如果(elDateTime==今天时间){
$el.addClass(“当前”);
}else if(elDateTime<今天时间){
$el.addClass(“过去”);
}
});
});
表#ttx{左边距:40px;边框折叠:折叠;}
#ttx th{填充顶部:18px;文本对齐:左;}
#ttx td{左填充:18px;}
#ttx tbody.current{背景色:#FFFF99;}
#ttx tbody.pass{color:#B8B8B8;}

2018年1月
买23000
卖出10250
2017年12月
买20000
销售12500
2017年11月
买10000
卖出8750

首先,抓住页面上的每个
t正文
,使用
$循环浏览每个正文。每个

$.each( $("tbody"), function(index, el) { ... });
为了实现您所述的3个条件,我们必须重新考虑应用程序当前的编码方式。现在,您正在比较字符串,以查看元素的日期是当前日期还是过去日期

更好的方法是使用
Date
对象来方便日期比较

请参见下面的代码。我们使用正则表达式从每个
tbody
id
中提取年和月,并使用它创建一个
Date
对象,然后将其与今天的
Date
对象进行比较:

$(函数(){
var now=new Date();//今天的日期
var nowYear=now.getFullYear();
var nowMonth=now.getMonth();
var today=新日期(现在年份,现在月份);
var todayTime=today.getTime();//以毫秒为单位获取今天,以便运行比较
$。每个($(“tbody”)函数(索引,el){
变量$el=$(el);
变量id=$el.attr('id');
//使用正则表达式获取年、月、日
var rxArr=id.match(/(\d{4})(\d{2})/);
风险年=rxArr[1];
var month=parseInt(rxArr[2])-1;//我们需要month-1来传递给Date对象
var elDate=新日期(年、月);
var elDateTime=elDate.getTime();//返回毫秒,因此我们运行比较
如果(elDateTime==今天时间){
$el.addClass(“当前”);
}else if(elDateTime<今天时间){
$el.addClass(“过去”);
}
});
});
表#ttx{左边距:40px;边框折叠:折叠;}
#ttx th{填充顶部:18px;文本对齐:左;}
#ttx td{左填充:18px;}
#ttx tbody.current{背景色:#FFFF99;}
#ttx tbody.pass{color:#B8B8B8;}

2018年1月
买23000
卖出10250
2017年12月
买20000
销售12500
2017年11月
买10000
卖出8750

如果我记得的话,那应该是
.addClass()
方法。你需要循环所有的tbody元素,读取id只会选择第一个如果我记得的话,那应该是
.addClass()
method。你需要遍历所有的tbody元素,读取id只会选择第一个。谢谢你。我很感激你解释我的语法是什么,也没有做什么。非常感谢!!@Maki很高兴它有帮助;)。但是,我注意到你的原始代码中有一个输入错误,
.addClass()
被错误地键入了
.addClass()
。谢谢你,勇。我很感激你解释我的语法是什么,我没有做什么。非常感谢!!@Maki,很高兴它能帮上忙;)。不过,我注意到你的原版有一个拼写错误