这是原始问题的扩展: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
元素并在其中查找日期和年份。