我正在尝试使用datetime
属性过滤某些html元素。我的html元素看起来像
<time title="Sat Dec 22 16:29:21 2012 UTC" datetime="2012-12-22T16:29:21+00:00">4 hours</time>
现在,我正在做的是
var x = $("p time").map(function() { filter(this);})
我的过滤器功能如下:
function filter(var1){
var now = new Date();
var time = $(var1).attr("datetime");
var time = new Date(time);
var diff = now - time;
if( diff < 7200000){
console.log("yes");
return $(var1).parent().parent();
}
}
当我运行上述代码时,x
为empty array
,yes
打印9次。
所以,我的问题是为什么我的filter
函数没有返回父html标记。
答案 0 :(得分:2)
var x = $("p time").map(function() { filter(this); });
应该是
var x = $("p time").map(function() { return filter(this); });
你错过了回复陈述。
答案 1 :(得分:1)
使用jQuery filter()
方法
var p_parents_I_want = $("p time").filter(function() {
var now = new Date();
var time = $(this).attr("datetime");
time = new Date(time);/* don't declare same var twice*/
var diff = now - time;
return diff < 7200000
}).parent().parent()
通常可以使用parent().parent()
closest(selector)