需要帮助根据时间隐藏元素

时间:2014-08-22 18:05:58

标签: javascript jquery

如果现在的时间大于ID属性中指定的时间,我试图隐藏div元素。 (ID属性中的时间只是一个php mktime函数)

我在下面编写了以下代码,但它似乎没有用。有人可以帮帮我吗?谢谢!

<div name='test' id='1408702800'>Test</div>

<script>
    $("div[name='test']").function({
    var $time_now =  $.now();
    var $time =  $("#time")
        if($time_now > $time){
            $("div[name='test']").hide();
        }
    });
</script>

3 个答案:

答案 0 :(得分:0)

正如我在评论中所说,你的DIV id在几秒钟内有一个UNIX时间戳,而$.now()以毫秒为单位返回一个时间戳。

使用$.each()遍历您的元素,并使用$(this)来识别当前元素。

$("div[name='test']").each(function() {

    // Get UNIX timestamp and multiply by 1000 to get milliseconds
    var timestamp = parseInt($(this)[0].id * 1000);

    if ($.now() > timestamp) {

        $(this).hide();
    }
});

答案 1 :(得分:-1)

首先,您希望each超过匹配元素并将其传递给应为每个匹配元素执行的函数。然后,抓住时间戳;将ID解析为整数并进行比较;然后只隐藏你正在迭代的元素。

var time_now =  $.now();
$("div[name='test']").each(function () {
    if(time_now < parseInt(this.id, 10)){
        $(this).hide();
    }
});

答案 2 :(得分:-2)

您应该使用document.querySelector(...).getAttribute('id')(在Javascript Vanilla 中)

在第

var $time = ...

您使用的 id 并不存在。 : - )