如何在字符串之间调用对象上的函数?

时间:2015-11-09 04:11:40

标签: javascript function dom

我正在尝试将日期和时间组合成特定格式:

  

2011年12月25日12:35

我有以下示例代码,我的任务是将其修改为上述格式。我试图通过将整个字符串放在一行代码上来实现,如下面的第二个小提琴所示。我的想法是,在每个字符串之间我调用对象上的函数,函数将被评估。

我的控制台显示以下错误:

  

未捕获的SyntaxError:意外的字符串index.html:19未捕获   ReferenceError:没有定义telltime(匿名函数)@   index.html的:19

我认为这是我使用字符串的方式。

<!DOCTYPE html>
<html>
<head>
	<title>Current Date and Time</title>
	<style>
		p {font: 14px normal arial, verdana, helvetica;}
	</style>
	<script>
		function telltime() {
			var out = "";
			var now = new Date();
			out += "<br />Date: " + now.getDate();
			out += "<br />Month: " + now.getMonth();
			out += "<br />Year: " + now.getFullYear();
			out += "<br />Hours: " + now.getHours();
			out += "<br />Minutes: " + now.getMinutes();
			out += "<br />Seconds: " + now.getSeconds();
			document.getElementById("div1").innerHTML = out;
		}
	</script>
</head>
<body>
	The current date and time are:<br/>
	<div id="div1"></div>
	<script>
		telltime();
	</script>
	<input type="button" onclick="location.reload()" value="Refresh" />
</body>
</html>

<!DOCTYPE html>
<html>
<head>
	<title>Current Date and Time</title>
	<style>
		p {font: 14px normal arial, verdana, helvetica;}
	</style>
	<script>
		function telltime() {
			var out = "";
			var now = new Date();
			out += "<br />Date: " + now.getDate() " " + now.getMonth() + " " + now.getFullYear() + " " + now.getHours() + ":" + now.getMinutes();
			document.getElementById("div1").innerHTML = out;
		}
	</script>
</head>
<body>
	<script>
		telltime();
	</script>
	The current date and time is:<br/>
	<div id="div1"></div>
	<input type="button" onclick="location.reload()" value="Refresh" />
</body>
</html>

3 个答案:

答案 0 :(得分:3)

那是因为你错过了+这里的标志:

[...] out += "<br />Date: " + now.getDate() <HERE> " " + [...]

另外,正如Paul Raub和其他人的评论中提到的那样,还有另一个错误。 您需要在创建telltime引用之后将div调用移至。 我喜欢在body标签之后放置这样的脚本,原因有两个,一个是不需要使用document ready函数。还有其他好处。您可以在this本书

中阅读更多内容

<!DOCTYPE html>
<html>
<head>
	<title>Current Date and Time</title>
	<style>
		p {font: 14px normal arial, verdana, helvetica;}
	</style>
	<script>
		function telltime() {
			var out = "";
			var now = new Date();
			out += "<br />Date: " + now.getDate() + " " + now.getMonth() + " " + now.getFullYear() + " " + now.getHours() + ":" + now.getMinutes();
			document.getElementById("div1").innerHTML = out;
		}
	</script>
</head>
<body>
	The current date and time is:<br/>
	<div id="div1"></div>
	<input type="button" onclick="location.reload()" value="Refresh" />
</body>

	<script>
		telltime();
	</script>

</html>

答案 1 :(得分:2)

1:作为其他答案,你错过了代码中的+。

2:你应该在div之后调用这个函数。因为html从上到下运行。所以代码应该是:

<!DOCTYPE html>
<html>
<head>
    <title>Current Date and Time</title>
    <style>
        p {font: 14px normal arial, verdana, helvetica;}
    </style>
    <script>
        function telltime() {
            var out = "";
            var now = new Date();
            out += "<br />Date: " + now.getDate() +" " + now.getMonth() + " " + now.getFullYear() + " " + now.getHours() + ":" + now.getMinutes();
            document.getElementById("div1").innerHTML = out;
        }
    </script>
</head>
<body>
    The current date and time is:<br/>
    <div id="div1"></div>
    <input type="button" onclick="location.reload()" value="Refresh" />
    <script>
        telltime();
    </script>
</body>
</html>

答案 2 :(得分:1)

如果您愿意,可以使用http://momentjs.com/并在一行中执行此操作。

$('#div1').html(moment().format("DD MMM YYYY HH:mm"));