0

我已经使用添加到我元素的数据属性中的车把进行倒计时,但我想要的是添加当前年份。我使用的框架倒计时是接受“2017/06/14”这种数据倒计时格式的最终​​倒计时,我的 html 是这样的:

<div class="cd" id="cd" data-countdown="{{month}}/{{day}} {{time}}"></div>

我想要实现的是将第一个索引中的年份添加为

data-countdown="2017/{{month}}/{{day}} {{time}}"

到目前为止,这是我的 js 脚本:

var currentDate = new Date().getFullYear();

$('.cd').each(function(){
  //get each data-attribute
  var a = $(this).data("countdown");
  var b = a.split(" ");
  //add the current year to it
  b.unshift(currentDate);
  c = b[0]+'\/'+b[1]+'\/'+b[2];
  $(this).data("countdown", c); });
4

2 回答 2

0

您的代码运行良好!

但是,正如您所说,您收到日期解析错误,您可以按照@Rajesh 的建议将年份附加到现有数据属性值,如下所示。

$('.cd').each(function(){ 
 $(this).data("countdown", new Date().getFullYear()+ "/" + $(this).data("countdown")); 
 alert($(this).data("countdown"))
});

使用$(this).data("countdown", c)您将无法通过检查它来查看更改,但如果您通过警告它,$(this).data("countdown")您可以看到它警告更改的值,因为.data管理元素的数据对象而不是 DOM。

因此,如果您希望它以供将来使用,您可以使用$(this).data("countdown", c)else use $(this).attr("data-countdown", c);

希望这可以帮助!

于 2017-06-14T06:01:36.360 回答
0

只需将当前年份添加到现有数据中即可。

$('.cd').each(function(){
  var getDataCountDown = $(this).data("countdown");
  var getYear = new Date().getFullYear(); // or whatever the year you want
  var newData = getYear + "/" + getDataCountDown;
  $(this).data("countdown", newData); 
});

更新

正如 Jaromanda X 所说,它不会改变 DOM,如果我们需要改变 DOM 也意味着我们可以去

$(this).attr("data-countdown", newData);

代替

$(this).data("countdown", newData);
于 2017-06-14T05:52:39.070 回答