这是原始问题的扩展:jQuery Extract Year from Date and Add Class to Parent

...但是我需要扩展它,以便将2个现有函数组合在一起,然后扩展以在数组而不是类中添加属性。

原始代码片段为课程增添了价值:-

从div获取日期并添加为类

jQuery(".publication-date").each(function(i) {
var yr = $(this).text().trim().split('/')[2];
jQuery(this).closest('.publication').addClass(yr);
});


从div获取出版物名称并添加为类

jQuery(".publication-name").each(function(i) {
var name = $(this).text().trim().replace(/[_\W]+/g, "-");


jQuery(this).closest('。publication')。addClass(name);
   });

我努力合并并写入“数据过滤器”的属性,其中数据过滤器具有用逗号分隔的任何值。数据过滤器“ 2017,出版物名称”

$(".publication-date, .publication-name").each(function(i) {
var yr = $('.publication-date').text().trim().split('/')[2];
var name = $('.publication-name').text().trim().replace(/[_\W]+/g, "-");
value = yr + ',' + name;
$(this).closest('.publication').attr({
"data-filter": value
});
});


所有输入非常感谢。

提前致谢

格兰尼伯

最佳答案

假设在您的HTML中,每个.publication div都有一个.publicaton-date div和一个publication-name div,您可以在以下代码上执行以下操作:

$('.publication').each(function() {
    var yr = $(this).find('.publication-date').text().trim().split('/')[2];
    var name = $(this).find('.publication-name').text().trim().replace(/[_\W]+/g, "-");
    $(this).attr('data-filter', yr + ',' + name);
})


即:而不是循环遍历.publication-date.publication-name元素,而是循环遍历.publication元素并在其中查找日期和年份。

10-04 16:12