我遇到了一个奇怪的 Javascript 问题。我得到的是一个特定格式的字符串,我将尝试用它创建一个表格。
表格每行只有一个单元格,字符串的格式是:
需要为每个单元格(行)显示内容
@
参数将传递给onmouseover
事件处理程序,当用户将鼠标移到显示的内容上时调用该事件处理程序文本。
JS代码:
// the string of format
var stringProof = document.getElementById("stringProof").value;
var arrayOfProof = stringProof.split("#");
// find the table
var table = document.getElementById("proofTable");
// remove what's within
table.innerHTML = "";
for(var i = currentIndex*4;i < end;i++)
{
// iterative create the text, span, cell and row
var currentStepProof = arrayOfProof[i];
var elementsInCurrentStepProof = currentStepProof.split("@");
var tr = document.createElement("tr");
var td = document.createElement("td");
var span = document.createElement("span");
span.onmouseover = function() {alert(elementsInCurrentStepProof[1]);};
var text = document.createTextNode(elementsInCurrentStepProof[0]);
span.appendChild(text);
td.appendChild(span);
tr.appendChild(td);
table.appendChild(tr);
}
问题是触发函数的行无关紧要onmouseover
,它只会提醒最后一行的参数,这意味着最后一行onmouseover
函数的参数会覆盖传递给前一行onmouseover
函数的参数。
有什么想法吗?非常感谢!!~~