我正在使用我的脚本显示日期,我正在使用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>
答案 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>
答案 2 :(得分:0)
已经修好了!感谢@JJJ,问题是我的平板电脑中的元素被隐藏,所以无法找到这就是为什么我的脚本会停止并吐出Uncaught TypeError的错误:无法设置null的属性'innerHTML',因为它不存在于平板电脑模式。我在我的脚本上创建了一个函数,如果用户只在桌面和平板电脑上查看,它将执行:
IsNullOrEmpty
答案 3 :(得分:-1)
我认为window.onload事件过早发生,脚本无法获取元素,因为它尚未呈现。尝试使用
window.document.body.onload
代替。