Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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/4/algorithm/12.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_Class_Extract_Contains - Fatal编程技术网

jQuery从日期提取年份并将类添加到父级

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

我希望在div列表中创建一个同位素过滤器,因此希望通过从显示的日期提取“年”,然后将其作为类添加到父div(
.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
,但在您的网站上,家长没有该类。我已经更新了代码片段,使其能够工作。谢谢你,这也起到了作用。似乎你不能给出一个以上的正确答案,但我会有别的答案。