将值从div传递给JS

时间:2017-04-20 15:01:03

标签: jquery html

在一个php文件中,我有一个带有id的div并返回了数据,请参阅代码:

<div id="dom-target" style="display: none;" data-stuff="2017, 8, 20, 0, 0"></div>

好的,现在我需要将数据填充值传递给新的日期调用,(是倒计时),我尝试使用变量,但显示NaN,例如

var ar = $('#dom-target').data('stuff'); 

最后JS代码是:

if (jQuery().mbComingsoon) {
    var ar = $('#dom-target').data('stuff');
    jQuery('#myCounter').mbComingsoon({expiryDate: new Date(ar), speed: 500});
    setTimeout(function () {
        jQuery(window).resize();
    }, 200);
}

显然我无法使用new Date(ar)从div调用数据?

谢谢!

3 个答案:

答案 0 :(得分:2)

而不是尝试解析2017,9,20,0,0和#39;在你的javascript中,为什么不在你的html中使用更适合的日期格式,如下所示:

data-stuff="2019-08-20 00:00"

答案 1 :(得分:1)

new Date('2017, 8, 20, 0, 0')返回Invalid Date。这是因为它需要单个参数而不是包含所有参数的字符串。

由于你无法直接在构造函数上调用apply,因此需要一些魔法:

var raw = '2017, 8, 20, 0, 0',
    parts = [null].concat(raw.split(',').map(function (item) {
        return parseInt(item.trim(), 10);
    })),
    _Date = Function.prototype.bind.apply(Date, parts);

console.log(parts, new _Date); // Wed Sep 20 2017 00:00:00 GMT-0400 (EDT)

有一个不错的解释here

答案 2 :(得分:0)

你可以做到

{{1}}