如何查找包含类或id的属性?

时间:2013-12-17 15:42:40

标签: jquery object jquery-selectors attributes

我试图通过确定其数据属性的值来对指定的类运行操作。我遇到的问题是我无法找到属性类/选择器,不知道如何到达属性选择器。

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"
        });
    }
})();

2 个答案:

答案 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'
    });
  }
});