jQuery从日期提取年份并将类添加到父级
我希望在div列表中创建一个同位素过滤器,因此希望通过从显示的日期提取“年”,然后将其作为类添加到父div(jQuery从日期提取年份并将类添加到父级,jquery,class,extract,contains,Jquery,Class,Extract,Contains,我希望在div列表中创建一个同位素过滤器,因此希望通过从显示的日期提取“年”,然后将其作为类添加到父div(.publication)来向父容器/div添加一个年度类 现在,我正在使用一种非常基本的方法来实现这一点,通过查看div是否包含特定的年份,然后分别指定年份: HTML <div> <div class="publication addyearclasshere"> <div class="publication-date">15/3/2017
.publication
)来向父容器/div添加一个年度类
现在,我正在使用一种非常基本的方法来实现这一点,通过查看div是否包含特定的年份,然后分别指定年份:
HTML
<div>
<div class="publication addyearclasshere">
<div class="publication-date">15/3/2017</div>
</div>
<div class="publication addyearclasshere">
<div class="publication-date">15/3/2016</div>
</div>
这种方法的问题在于,如果我们低于2015年或高于2020年,就不会分配任何课程。如果我们可以分解日期并提取该类的年份,那么这将逐年进行?循环遍历每个
。发布日期
并从其文本中提取年份。将年份作为类添加到其父级。像这样:
jQuery(".publication-date").each(function(i) {
var yr = $(this).text().trim().split('/')[2];
jQuery(this).closest('.publication').addClass(yr);
});
编辑:回答评论中的OPs问题:
使用replace
将所有空格替换为“-”,并将结果添加到.publication
的类中
jQuery(".publication-name").each(function(i) {
var name = $(this).text().trim().replace(' ', '-');
jQuery(this).closest('.publication').addClass(name);
});
循环浏览每个
.publicationdate
,并从文本中提取年份。将年份作为类添加到其父级。像这样:
jQuery(".publication-date").each(function(i) {
var yr = $(this).text().trim().split('/')[2];
jQuery(this).closest('.publication').addClass(yr);
});
编辑:回答评论中的OPs问题:
使用replace
将所有空格替换为“-”,并将结果添加到.publication
的类中
jQuery(".publication-name").each(function(i) {
var name = $(this).text().trim().replace(' ', '-');
jQuery(this).closest('.publication').addClass(name);
});
可以循环遍历每个元素并拆分文本 而且您不需要使用
.closest()
,只需使用.parent()
更新。因为你的代码在你的网站上的例子中。您必须使用最接近的代码来匹配网站代码。更新html以匹配您的网站html
jQuery('div[class*=“publicationdate”]”)。每个(函数(){
var year=$(this.text().split(“/”);
$(this).closest(“.publication”).addClass(year[year.length-1]);
});代码>
Cosmética
苏尔
15/3/2017
您可以循环浏览每个元素并拆分文本
而且您不需要使用.closest()
,只需使用.parent()
更新。因为你的代码在你的网站上的例子中。您必须使用最接近的代码来匹配网站代码。更新html以匹配您的网站html
jQuery('div[class*=“publicationdate”]”)。每个(函数(){
var year=$(this.text().split(“/”);
$(this).closest(“.publication”).addClass(year[year.length-1]);
});代码>
Cosmética
苏尔
15/3/2017
@glennyboy从你的例子中,我的印象是.publication
是.publicationdate
的直接父母。但由于不是,请使用最近的()
而不是父级()
。我已经更新了答案。你能解释一下函数中(I)的相关性吗?I
是循环中的索引。与(变量i=0;i
中的i
相同。在您的情况下,它不是必需的,您可以将其删除。如何使用相同的逻辑获取div“.publication name”中的第一个单词,并将其作为类添加到.publication中。那么,如果名称是“random publication”,它会简单地使用“random”一词并将其作为一个类添加?更妙的是,它采用了完整的出版物名称,并在每个单词之间添加了一个连字符,这样你就可以得到class..random publication'?有效。replace(/[\s]/g,'-')@glennyboy从你的例子中,我的印象是.publication
是.publication date
的直接父项。但由于不是,请使用最近的()
而不是父级()
。我已经更新了答案。你能解释一下函数中(I)的相关性吗?I
是循环中的索引。与(变量i=0;i
中的i
相同。在您的情况下,它不是必需的,您可以将其删除。如何使用相同的逻辑获取div“.publication name”中的第一个单词,并将其作为类添加到.publication中。那么,如果名称是“random publication”,它会简单地使用“random”一词并将其作为一个类添加?更妙的是,它采用了完整的出版物名称,并在每个单词之间添加了一个连字符,这样你就可以得到class.random publication'?有效。替换(/[\s]/g,“-”)@glennyboy在你的例子中,publication date
的父项是publication
,但在你的网站上,父项没有该类。我已经更新了代码片段,使其能够工作。谢谢你,这也起到了作用。似乎您不能给出多个正确答案,但我会给出其他答案。@glennyboy在您的示例中,publicationdate
的家长是publication
,但在您的网站上,家长没有该类。我已经更新了代码片段,使其能够工作。谢谢你,这也起到了作用。似乎你不能给出一个以上的正确答案,但我会有别的答案。