有人能告诉我我做错了什么吗?我花了整整一天的时间解决这个问题,但我无处可去......我想将事件“onmouseover”添加到我的span元素中。但是,当我执行下面的代码时,没有任何反应。我做了一些谷歌搜索,我认为这可能是一个变量范围问题?我不太确定...任何帮助表示赞赏!添加事件“onmouseover”时遇到问题
<!DOCTYPE html>
<html>
<head>
<title>Fixing bugs in JS</title>
<script src="question1.js" type="text/javascript"></script>
<head>
<body>
<div id="output"></div>
</body>
<html>
var NUMBERS = 100;
function go()
{
var out = document.getElementById("output");
for (var i = 1; i < NUMBERS+1; i++) {
var span_one = document.createElement("span");
span_one.id = "span" + i;
span_one.innerHTML = "" + i;
out.appendChild(span_one);
if (isPrime(i) === true) { // where i is a prime number (3, 5, 7..etc)
span_one.style.backgroundColor = "red";
span_one.onmouseover = function() {
hover("span"+i, "yellow", "150%")
};
span_one.onmouseout = function() {
hover("span"+i, "red", "100%") // whatever color in this line always overrides previous set color...
};
}
function hover(id, color, size) {
var span = document.getElementById(id);
span.style.backgroundColor = color;
span.style.fontSize = size;
}
function etc() {
...
}
window.onload=go;
的问题是,调用时,'i'不再持有它所需要持有。 (我在onmouseover中的值不同于当它用作isPrime的参数时) – enhzflep
@enhzflep我通过console.log(span_one.id)进行了检查,它保存了它假设的值... – aeml
这就是不是一回事。 'span_one.id' _应该保持与'i'相同的值,但它不会。 – enhzflep