我用车把做了倒计时,它被添加到我的元素的数据属性中,但我想要的是添加当前年份。我使用的框架倒计时是接受"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); });
只需将当前年份添加到现有数据之前即可。
$('.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);
您的代码工作正常!
但是,正如您所说,您会收到日期解析错误,您可以将年份附加到现有数据属性值,如下所示@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)
其他用途 $(this).attr("data-countdown", c);
.
希望这有帮助!