使用JQuery获取行信息

时间:2018-02-04 00:18:54

标签: javascript jquery

所以我试图在点击表格行中获取数据并使用点击的信息创建/更新另一个表格。问题是我不确定如何传递数据。到目前为止,我可以单击表行并启动事件,看起来我的第二个表也已创建,但信息未正确传递。

如果有人可以通过告诉我如何传递信息来帮助我,我感激不尽

$(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);

1 个答案:

答案 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);