如何在数据属性中添加新数据



我用车把做了倒计时,它被添加到我的元素的数据属性中,但我想要的是添加当前年份。我使用的框架倒计时是接受"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); .

希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新