为什么我的输出不能显示在我的div中?
问题描述:
我正在测试一些时间格式化系统(比如推特发布旁边的Twitter有一段时间),所以我设置了一个准系统HTML页面来运行我的JavaScript,但输出并未显示在我的div中。这是为什么发生?任何帮助表示赞赏!为什么我的输出不能显示在我的div中?
页:
<html>
<head>
<title>Testing</title>
</head>
<body>
<div id="app">
<script>
var app = require('ago');
#('app').innerHTML = timeSince(old_date);
</script>
</div>
</body>
</html>
脚本:
var old_date = new Date("November 13, 2017 5:00 PM");
function #(sel) {
return document.getElementById(sel);
}
function timeSince(post_minute) {
var seconds = Math.floor((new Date() - post_minute)/1000);
var interval = Math.floor(seconds/31536000);
if (interval > 1) {
return interval + "y";
}
interval = Math.floor(seconds/2592000);
if (interval > 1) {
return interval + "mo.";
}
interval = Math.floor(seconds/86400);
if (interval > 1) {
return interval + "d";
}
interval = Math.floor(seconds/3600);
if (interval > 1) {
return interval + "h";
}
interval = Math.floor(seconds/60);
if (interval > 1) {
return interval + "m";
}
return Math.floor(seconds) + " seconds";
}
答
#不是在JavaScript有效的标识符。阅读this答案知道什么是有效的标识符。
示例代码段:
var old_date = new Date("November 13, 2017 5:00 PM");
$('app').innerHTML = timeSince(old_date);
function $(sel) {
return document.getElementById(sel);
}
function timeSince(post_minute) {
var seconds = Math.floor((new Date() - post_minute)/1000);
var interval = Math.floor(seconds/31536000);
if (interval > 1) {
return interval + "y";
}
interval = Math.floor(seconds/2592000);
if (interval > 1) {
return interval + "mo.";
}
interval = Math.floor(seconds/86400);
if (interval > 1) {
return interval + "d";
}
interval = Math.floor(seconds/3600);
if (interval > 1) {
return interval + "h";
}
interval = Math.floor(seconds/60);
if (interval > 1) {
return interval + "m";
}
return Math.floor(seconds) + " seconds";
}
<div id="app">
</div>
+0
修复了我的问题,谢谢! –
+0
@AlexisKnox酷,。 :) –
答
#
不是JavaScript的一个有效的标识符。我将它改为$
,你的代码运行得很好。
var old_date = new Date("November 13, 2017 5:00 PM");
function $(sel) {
return document.getElementById(sel);
}
function timeSince(post_minute) {
var seconds = Math.floor((new Date() - post_minute)/1000);
var interval = Math.floor(seconds/31536000);
if (interval > 1) {
return interval + "y";
}
interval = Math.floor(seconds/2592000);
if (interval > 1) {
return interval + "mo.";
}
interval = Math.floor(seconds/86400);
if (interval > 1) {
return interval + "d";
}
interval = Math.floor(seconds/3600);
if (interval > 1) {
return interval + "h";
}
interval = Math.floor(seconds/60);
if (interval > 1) {
return interval + "m";
}
return Math.floor(seconds) + " seconds";
}
$('app').innerHTML = timeSince(old_date);
<html>
<head>
<title>Testing</title>
</head>
<body>
<div id="app">
</div>
</body>
</html>
它应该是$( '#应用程序')的innerHTML –
我不使用jQuery我的选择。我写我自己在我的JS文件 –
@JayantiLal,但这将是jQuery ....我认为问题是'#()'不是一个有效的函数名称看到这里https://jsfiddle.net/97b6yajk/比较到此https://jsfiddle.net/kjzw0ay7/ – NewToJS