我试图通过确定其数据属性的值来对指定的类运行操作。我遇到的问题是我无法找到属性类/选择器,不知道如何到达属性选择器。
jQuery .find,.closest等不起作用,因为我可以看到我不再在那个类中,而是拉[object Object],不幸的是我不熟悉。
对此的任何帮助都会很棒!
以下是我正在使用的代码:
(function () {
var currentDate = $.datepicker.formatDate('DD,d MM yy', new Date());
if ($(".post-title").data('date') < currentDate) {
// console.log($(this));
$(this).css({
"opacity": "0.5",
"border": "2px solid red"
});
}
})();
答案 0 :(得分:1)
问题是this
没有引用post-title
元素。您的日期比较也需要更改,它必须比较日期而不是字符串
如果可以有多个元素,则需要使用每个循环
jQuery(function ($) {
var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate());
$(".post-title").each(function () {
var date = $.datepicker.parseDate('DD,d MM yy', $(this).data('date'));
if (date < today) {
// console.log($(this));
$(this).css({
"opacity": "0.5",
"border": "2px solid red"
});
}
})
})
如果不是
jQuery(function ($) {
var date = new Date();
var today = new Date(date.getFullYear(), date.getMonth(), date.getDate());
var date = $.datepicker.parseDate('DD,d MM yy', $title.data('date'));
if (date < today) {
$title.css({
"opacity": "0.5",
"border": "2px solid red"
});
}
})
答案 1 :(得分:0)
如果您使用each
,它会为您提供关闭工作。然后this
将引用当前的jQuery对象/元素(即使只有一个匹配元素)。
$('.post-title').each(function () {
if (new Date($(this).data('date')).getTime() < new Date().getTime()) {
$(this).css({
opacity: 0.5,
border: '2px solid red'
});
}
});