所以我试图在点击表格行中获取数据并使用点击的信息创建/更新另一个表格。问题是我不确定如何传递数据。到目前为止,我可以单击表行并启动事件,看起来我的第二个表也已创建,但信息未正确传递。
如果有人可以通过告诉我如何传递信息来帮助我,我感激不尽
$(document).on("click", "tr", function(HTMLTableRowElement){ // watch the whole document for when existing (or new) tr elements are clicked
//console.log("table row clicked!");
let tbody = $("#employee-Details tbody");
let fullNameTd= $('<tr>').text(HTMLTableRowElement.FirstName+' '+HTMLTableRowElement.LastName);
let hireDate= $('<tr>').text( moment((HTMLTableRowElement.HireDate)).format('MM/DD/YYYY'));
let fullAddress= $('<tr>').text(HTMLTableRowElement.AddressStreet+' '+HTMLTableRowElement.AddressCity+' '+HTMLTableRowElement.AddressState+' '+HTMLTableRowElement.AddressZip);
let salaryBonus = $('<tr>').text(' $ '+HTMLTableRowElement.SalaryBonus);
// append all table cells to a new row
let row = $('<tr>').append(fullNameTd).append(hireDate).append(fullAddress).append(salaryBonus); // create the row and append // all of the tr elements.
// replace the row on the table body
tbody.replaceWith(row);
答案 0 :(得分:1)
在单击回调函数中,您可以传入事件对象。您正在传递HTMLTableRowElement
并将其用作行元素,这是不正确的。您可以使用$(this)[0]
访问点击的行,在行内可以访问各个单元格。
查看这个plunker:link
例如,要获取获取第一个和第二个单元格文本所需的名字和姓氏:
let fullNameTd = $('<tr>').text(thisRow.cells[0].innerText + ' ' + thisRow.cells[1].innerText);
tbody.replaceWith(row);
行也只是第一次使用,因为你要用行替换tbody,所以jquery第二次找不到它。最好清除tbody
,然后附加行:
tbody.empty();
tbody.append(row);