为什么我的输出不能显示在我的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"; 
} 
+0

它应该是$( ​​'#应用程序')的innerHTML –

+0

我不使用jQuery我的选择。我写我自己在我的JS文件 –

+0

@JayantiLal,但这将是jQuery ....我认为问题是'#()'不是一个有效的函数名称看到这里https://jsfiddle.net/97b6yajk/比较到此https://jsfiddle.net/kjzw0ay7/ – NewToJS

不是在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>