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
。
何かご意見は?どうもありがとう!!~~