让JavaScript函数在HTML中工作?

时间:2011-02-20 20:25:57

标签: javascript html dom

我正在尝试编写一些简单的函数。作为测试,我写了以下内容: (抱歉,我不知道如何在此页面上格式化)

<!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表示完全没问题。但是,在任何情况下我都无法使用该功能。我是否在做与文档对象模型有关的根本错误?

6 个答案:

答案 0 :(得分:2)

你忘了调用这个函数吗? (将其分配给eventtype)

答案 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版。您无法使用intvar 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.logalert

答案 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>