我正在尝试编写一些简单的函数。作为测试,我写了以下内容: (抱歉,我不知道如何在此页面上格式化)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy for Linux (vers 6 November 2007), see www.w3.org" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Examples of Strings</title>
<script type="text/javascript">
//<![CDATA[
<!-- hide me
// get a name
// declarations
var int firstVariable = 7;
var int firstVariable = 9;
// stop hiding me -->
//]]>
</script>
</head>
<body>
<h1>My First Function</h1>
<script type="text/javascript">
//<![CDATA[
<!-- hide me
function name(firstVariable, secondVariable){
int result = firstVariable + secondVariable;
document.writeln(result);
return result;
}
// show me -->
//]]>
</script>
</body>
</html>
验证员http://validator.w3.org/check表示完全没问题。但是,在任何情况下我都无法使用该功能。我是否在做与文档对象模型有关的根本错误?
答案 0 :(得分:2)
答案 1 :(得分:0)
嗯,问题是你定义了一个函数,但你根本没有执行该函数。
尝试调用函数,如下所示:
<script>
var firstVariable = 7;
var secondVariable = 9; // you have a typo
function name(firstVariable, secondVariable){
var result = firstVariable + secondVariable;
document.writeln(result);
return result;
}
// making the function call
name(firstVariable, secondVariable);
</script>
顺便首先删除<!-- hide me
。如果浏览器支持javascript,那么您有一个格式错误的评论标记,如果您需要hide me
,请将其正确关闭,例如<!-- hide me -->
。
答案 2 :(得分:0)
那是你的所有代码吗?
如果是这样,你根本就没有打电话给这个功能!
如果没有,请告诉我们如何调用该函数。
此外,您将变量声明为int,js中没有int,只是var很好。
答案 3 :(得分:0)
首先,验证程序不检查javascript,它只检查HTML标记。
其次,当你有<!-- hide me
时,你需要像show me -->
那样评论它:// <!-- hide me
。今天几乎不需要这些,所以无论如何你都可以安全地省略它们。
第三,你正在重新定义firstVariable
,你可能打算第二次放secondVariable
。
第四,你永远不会调用函数,所以你可能想在函数声明后的某个地方放置name(7, 9);
。
最后,如果您不使用它(在这种情况下不是这样),则不需要返回结果,并且您不应该使用document.write()
,因为它会阻止渲染页面。
<script type="text/javascript">
// <!--
//<![CDATA[
var int firstVariable = 7;
var int secondVariable = 9;
function name(firstVariable, secondVariable){
int result = firstVariable + secondVariable;
document.writeln(result);
}
name(firstVariable, secondVariable);
//]]>
// -->
</script>
答案 4 :(得分:0)
验证器说你的标记没问题,因为你的标记确实没问题。问题出在<script>
标签内(W3C验证器无法为您测试)。
首先删除<!-- hide me -->
条评论,因为它们是不必要的,并导致Javascript语法错误。
其次,如果你正在为浏览器开发,你应该使用没有静态类型的ECMAScript第5版。您无法使用int
或var int
。
第三,你省略了函数调用(至少在上面的例子中)。
您的代码变为:
// declarations
var firstVariable = 7;
var secondVariable = 9;
function name(firstVariable, secondVariable){
var result = firstVariable + secondVariable;
alert(result);
return result;
}
name(firstVariable, secondVariable); // call the function
哦,顺便说一下,请放下教你使用document.write
的教程,因为这是一个非常糟糕的编码习惯。对于测试和调试消息,请使用console.log
或alert
。
答案 5 :(得分:0)
感谢上述回复。
除其他外,我忘记了HTML没有主要方法!
运行已编辑的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy for Linux (vers 6 November 2007), see www.w3.org" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Examples of Strings</title>
<script type="text/javascript">
//<![CDATA[
// get a name
// declarations
var firstVariable = 7;
var secondVariable = 9;
//]]>
</script>
</head>
<body>
<h1>My First Function</h1>
<script type="text/javascript">
//<![CDATA[
function name(firstVariable, secondVariable){
var result = firstVariable + secondVariable;
alert(result);
return result;
}
name(firstVariable, secondVariable);
//]]>
</script>
</body>
</html>