JavaScriptを使用して、テーブルを作成してDOMを操作しています。考えられるのは、生成されたテーブルは、各行の横にあるボタンを使用した払戻しの一覧であり、マネージャは払い戻しを承認または却下することができます。 HTMLでテーブルを生成するロジックは次のとおりです。テーブルの最後の行がプッシュされたボタンに関係なく削除される
var r;
for (r in ajaxObject) {
document.getElementById("reTable").innerHTML += "<tr>" +
"<td>" + ajaxObject[r].reimbursementId + "</td>" +
"<td>" + ajaxObject[r].amount + "</td>" +
"<td>" + ajaxObject[r].statusName + "</td>" +
"<td>" + ajaxObject[r].description + "</td>" +
"<td>" + ajaxObject[r].dateSubmitted + "</td>" +
"<td>" + ajaxObject[r].reimbursementTypeName + "</td>" +
"<td><button id=\"accept" + r + "\">Accept</button></td>" +
"<td><button id=\"deny" + r + "\">Deny</button></td>" +
"</tr>";
}
r = 0;
for (r in ajaxObject) {
var e;
e = document.getElementById("accept" + r);
console.log(e);
e.onclick = function() { approveRe(ajaxObject[r].reimbursementId) };
console.log(e.onclick);
e = document.getElementById("deny" + r);
console.log(e);
e.onclick = function() { denyRe(ajaxObject[r].reimbursementId) };
console.log(e.onclick);
}
残念ながら、私は非常に奇妙な問題に遭遇しています。どの承認ボタンまたは拒否ボタンを押しても、テーブルの最後の行は削除されます。ボタンのonclickイベントに付随する関数は、呼び出されるまで実際には "ajaxObject [r] .reimbursementId"を評価しないので、 "r"はインデックスに等しいという事実と関係していると思いますテーブルの最後の行の私はこれをどのように回避することができるのだろうかと思っていた。ありがとう!