【发布时间】:2020-10-03 11:33:57
【问题描述】:
我有一个表格,用户可以在其中通过模式添加、编辑和删除行。使用此 JS 添加新行时:
if (tit.innerHTML === "Add Account"){
var type=document.getElementById("modal_type").value;
var price=document.getElementById("modal_price").value;
var table=document.getElementById(tableId);
var table_len=(table.rows.length)-1;
table.insertRow(table_len).outerHTML="<tr id='acc_row"+table_len+"'><td class='accname' id='acc_name"+table_len+"'>"+type+"</td><td class='accbal' id='acc_balance"+table_len+"'>"+price+"</td><td class='edtbutton' style='display: block'><button class='edit_account' data-modal-target='#modal' id='editaccounts' onclick='sayedit()'>✎</button></td></tr>";
document.getElementById("modal_type").value="";
document.getElementById("modal_price").value="";
}
新行添加了正确的类、ID 等。但是添加的编辑按钮不起作用。我查看了开发人员模式,添加的编辑按钮与默认情况下的相同。这是单击编辑按钮时应该运行的函数:
const openModalButtons = document.querySelectorAll("[data-modal-target]");
const closeModalButtons = document.querySelectorAll("[data-close-button]");
const overlay = document.getElementById("overlay");
openModalButtons.forEach(button => {
button.addEventListener("click", () => {
const modal = document.querySelector(button.dataset.modalTarget)
openModal(modal)
})
})
//Modal functionality
$(function () {
// add click action to your edit buttons
$('.edit_account').on('click', function(e){
// get the parent table row
row = e.target.parentElement.parentElement;
// get cell data
c = row.childNodes;
name = c[0].textContent;
amount = c[1].textContent;
// populate modal with data from selected table row
document.getElementById('modal_type').value = name;
document.getElementById('modal_price').value = amount;
// pass table row ID to the modal
document.getElementById('row_num').value = row.getAttribute('id');
});
知道我的错误在哪里吗?我尝试在添加的 html 中添加另一个 onclick,这会导致模式打开但它没有任何功能。
【问题讨论】:
标签: javascript