我是一个javascript和jQuery初学者(就像在短短一周内),我需要一些有经验的人来告诉我这段代码有什么问题。单击div不会执行任何操作。我可以谷歌几个小时,但你们可能会更快地看到问题的方式,我将能够从错误中学习并继续前进。在我的代码中,我用“console.log”替换了最后一个命令,并将所有内容复制/粘贴到textedit中,看看当我点击时它是否会在控制台中给我“回答”。但我一无所获。提前谢谢你们。
我的代码是here。
......在这里
var box = "div";
$(document).ready(
function () {
$(box).fadeTo(1000, 0.8);
});
$(box).click(
function () {
var userchoice = this.id;
var answer;
var computerchoice = Math.floor(Math.random() * 3 + 1);
if (computerchoice === 1) {
computerchoice = "rock";
}
if (computerchoice === 2) {
computerchoice = "paper";
}
if (computerchoice === 3) {
computerchoice = "scissors";
}
if (userchoice === computerchoice) {
answer = "It's a tie.";
}
if (userchoice === "rock") {
if (computerchoice === "paper") {
answer = "Computer Wins with " + computerchoice + ".";
} else {
answer = "You win with " + userchoice + ".";
}
}
if (userchoice === "paper") {
if (computerchoice === "scissors") {
answer = "Computer Wins with " + computerchoice + ".";
} else {
answer = "You win with " + userchoice + ".";
}
}
if (userchoice === "scissors") {
if (computerchoice === "rock") {
answer = "Computer Wins with " + computerchoice + ".";
} else {
answer = "You win with " + userchoice + ".";
}
}
document.getElementById("header").innerHTML(answer);
});
答案 0 :(得分:3)
如果你检查浏览器的JS控制台,你会看到这个错误:
Uncaught TypeError: Property 'innerHTML' of object #<HTMLHeadingElement> is not a function
这告诉您.innerHTML
是您要为其分配值的属性,而不是要调用的函数,因此您需要更改此行:
document.getElementById("header").innerHTML(answer);
为:
document.getElementById("header").innerHTML = answer;
演示:http://jsfiddle.net/CUTez/15/
但是既然你正在使用jQuery,你可以这样做:
$("#header").html(answer);
另请注意,如果在jsfiddle外部运行相同的代码,则需要在文档就绪处理程序中移动$(box).click(...)
代码,或者在关闭之前将整个脚本元素放在页面的末尾{{ 1}}标记,否则</body>
部分将找不到任何元素,因为它们尚未被解析。 (它适用于小提琴,因为默认情况下,jsfiddle将所有代码放在onload处理程序中。)