我用把手制作了倒计时器,它被添加到我的元素的数据属性中,但我想要的是添加当前年份。我使用的框架倒计时是接受这个数据倒计时格式“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); });
答案 0 :(得分: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);
答案 1 :(得分: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
管理元素&# 39; s数据对象不是DOM。
因此,如果您希望将来使用,可以使用$(this).data("countdown", c)
,否则请使用$(this).attr("data-countdown", c);
。
希望这有帮助!