如何找到持有类或 id 的属性?
Posted
技术标签:
【中文标题】如何找到持有类或 id 的属性?【英文标题】:How to find an attributes holding class or id? 【发布时间】:2014-01-05 11:15:59 【问题描述】:我正在尝试通过确定其数据属性的值来对指定类运行操作。我运行的问题是我无法找到属性类/选择器,不确定如何到达属性选择器。
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"
);
)();
【问题讨论】:
也许是一些生活的例子? 注意:.data('date') 将是一个字符串,而不是日期。将其与日期对象进行比较是行不通的。 对于this
引用特定的.post-title
元素,如果该类的元素不止一个,则需要使用each
循环
@ diodeus如果.data('date')
保存为Date
对象,它应该被检索为一个。 span>
这是一个小提琴。我只需要使过期的帖子生效,并让其保持活跃状态jsfiddle.net/MVFW9
【参考方案1】:
问题是this
没有引用post-title
元素。您的日期比较也需要更改,它必须比较日期而不是字符串
如果可以有多个元素,则需要使用 each 循环
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"
);
)
【讨论】:
@user3111851new Date(string)
可能并不总是根据客户端使用的本地正常工作【参考方案2】:
如果您使用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'
);
);
【讨论】:
这很完美,非常干净而且切中要害。谢谢!以上是关于如何找到持有类或 id 的属性?的主要内容,如果未能解决你的问题,请参考以下文章