Moment.js日期不适用于平板电脑

时间:2016-10-06 14:23:49

标签: javascript momentjs

我正在使用我的脚本显示日期,我正在使用duda平台 但平板电脑版本不能正常工作,而桌面和手机就可以了。我的脚本粘贴在正文的末尾,我使用了moment.js

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script>
//for desktop mobile display date today
window.onload = function(){
    var a = moment().format('LL');
    document.getElementById("dateToday").innerHTML = a;

//for tablet
    var b = moment().format('LL');
    document.getElementById("dateTodayTab").innerHTML = b;
}


</script>

控制台说:未捕获的TypeError:无法设置属性&lt; innerHTML&#39;为null。 这是我的桌面和平板电脑的html代码。我检查了平板电脑元素,高度是0px而桌面版本没有。注意在这里指出我的错误是什么?

<h4> The date today is :<span id="dateToday"></span></h4>
<h4> The date today is :<span id="dateTodayTab"></span></h4>

4 个答案:

答案 0 :(得分:1)

在HTML示例中,范围未关闭

<h4> The date today is :<span id="dateToday"></span</h4>
<h4> The date today is :<span id="dateTodayTab"></span</h4>

应该是这样的:

<h4> The date today is :<span id="dateToday"></span></h4>
<h4> The date today is :<span id="dateTodayTab"></span></h4>

(不是肯定的解决方案,但你可以从那里开始)

答案 1 :(得分:0)

这应该有效:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script type='text/javascript'>
window.onload=function(){
  var a = moment().format('LL');
  document.getElementById("dateToday").innerHTML = a;
  //for tablet
  var b = moment().format('LL');
  document.getElementById("dateTodayTab").innerHTML = b;
}
</script>
<h4>The date today is :<span id="dateToday"></span></h4>
<h4>The date today is :<span id="dateTodayTab"></span></h4>

Demo here

答案 2 :(得分:0)

已经修好了!感谢@JJJ,问题是我的平板电脑中的元素被隐藏,所以无法找到这就是为什么我的脚本会停止并吐出Uncaught TypeError的错误:无法设置null的属性'innerHTML',因为它不存在于平板电脑模式。我在我的脚本上创建了一个函数,如果用户只在桌面和平板电脑上查看,它将执行:

IsNullOrEmpty

答案 3 :(得分:-1)

我认为window.onload事件过早发生,脚本无法获取元素,因为它尚未呈现。尝试使用

window.document.body.onload

代替。