你的Javascript程序我帮你改好了,你看看吧
主要改了type="text/javascript"和my函数中的两个语句,另外,把选择颜色table中的black改成了cyan,其它都没变.
完整的html代码如下
<!doctype html><html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus&#174">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
<script type="text/javascript">
function my(color)
{
var table=document.getElementById("colorTable")
table.style.backgroundColor=color
}
</script>
</head>
<body>
<h3>选取颜色</h3>
<table border="1px">
<tr height="24px">
<td bgcolor="red" width="24px" onclick="my('red')"></td>
<td bgcolor="orange" width="24px" onclick="my('orange')"></td>
<td bgcolor="yellow" width="24px" onclick="my('yellow')"></td>
<td bgcolor="green" width="24px" onclick="my('green')"></td>
<td bgcolor="cyan" width="24px" onclick="my('cyan')"></td>
<td bgcolor="blue" width="24px" onclick="my('blue')"></td>
<td bgcolor="purple" width="24px" onclick="my('purple')"></td>
</tr>
</table>
<table id="colorTable" border="1px" height="168px" width="168px">
<tr>
<td></td>
</tr>
</table>
</body>
</html>
运行结果
你在定义函数的时候,传的形参是num,而在函数内部使用的时候是n,明显不统一嘛,统一一下。就不会报错了----------------------------------
另外,在函数的末尾没有return值,所有在html文件内嵌入的document.write(...)输出为undefined
这是拷贝自哪里的JavaScript代码?
仔细看了代码, 函数$Body是写在了函数createWavePlane中了, 这样一来$BODY最多只能算一个"局部函数"(借用局部变量的概念), 而setInterval函数的一个参数是一个JavaScript执行脚本, 从调用来看$BODY必须是一个"全局函数", 故会有$BODY未定义的错误.
另外, setInterval中应写成函数调用形式$BODY(), 这样函数才会得到执行(没有括号函数是不会被执行的).
看了此代码好像是要实现一个类似"类"的功能, 一般JavaScript中的"类"这样写:
function ClassA() {this.className = "ClassA" // 用this.xxx做为类成员的访问定义
this.method1() // 调用类的"实例方法"
}
// 用类名.prototype = {}来定义类的各种"实例方法"
ClassA.prototype = {
method1: function() {
window.alert("You call method1")
}, // 各方法间用逗号分隔
method2: function() {
window.alert("You call method2")
}
}
// 用类名.静态方法 = function()定义静态方法
ClassA.staticMethod = function() {
window.alert("call static method")
}
// 这样来调用静态方法:
ClassA.staticMethod()
// 这样定义"类的实例", 并调用类实例方法
var ins = new ClassA()
ins.method2()