Javascript:从表中提取单元格数据

时间:2015-11-16 17:52:12

标签: javascript html

我有一个场景,其中有一个4行的表,第4行是一个文本框。当一个" onchange"触发文本框的事件,我想将同一特定行的单元格中的数据提取到另一个表中。当然,我的桌子由一行以上组成。

<div class="ProductsTable">
    <table class="tablestyle">
        <tr>
            <th>Item</th>
            <th>Price</th>
            <th>Preview</th>
            <th class="auto-style4">Quantity</th>
            <th class="auto-style15">Selected Items</th>
        </tr>
        <tr id="row1">
            <td class="auto-style1" id="item_name">Sofa</td>
            <td class="auto-style2" id="item_price">$280.00</td>
            <td class="auto-style3">
                <img class="itemimage" src="images\sofa1.jpg" />
            </td>
            <td class="auto-style4">
                <input class="quantitybox" id="item_quantity" type="text" onchange="get_quantity();" />
            </td>
            <td rowspan="10">
                <table class="InvoiceTable" id="invoice">
                    <tr>
                        <th class="auto-style7">Item</th>
                        <th class="auto-style2">Price</th>
                        <th class="auto-style4">Quantity</th>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</div>

我的javascript是:

function get_quantity() {
    var table = document.getElementById("invoice");
    var row = table.insertRow(1);
    var cell1 = row.insertCell(0);
    var cell2 = row.insertCell(1);
    var cell3 = row.insertCell(2)
    cell1.innerHTML = document.getElementById("item_name").innerHTML;
    cell2.innerHTML = document.getElementById("item_price").innerHTML;
    cell3.innerHTML = document.getElementById("item_quantity").value;
}

如何在&#34; onchange&#34;上创建一个循环来检查我的所有表格。事件被触发。因为我的表中实际上有10行。 最好不要使用jquery。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您正在寻找一种功能,将已更改行的内容(即每列中的数据)复制到发票表中。

我希望通过某种迭代动态创建行。在迭代时,我希望有一个唯一的数字可用,为什么它可以用作通用选择器。

这是一个执行此操作的功能:

          Job.update(
                    {
                        _id: req.params.job_id,
                    },
                    {
                        $set: {'candidates.$.status': 'Accepted'} ,
                    }, function(err, count) {
                        if (err) return next(err);
                        callback(err, count);
                    });

您可以通过使用类function get_quantity(rowNumber) { var table = document.getElementById("invoice" + rowNumber); var row = table.insertRow(1); var columns = document.getElementById("row" + rowNumber).childNodes; var dataColumnIndex = 0; for (var i = 0; i < columns.length; i++) { if (columns[i].className == "data") { var cell = row.insertCell(dataColumnIndex); cell.innerHTML = columns[i].innerHTML; dataColumnIndex++; } } var inputQuantity = document.getElementById("item_quantity" + rowNumber).value row.insertCell(dataColumnIndex).innerHTML = inputQuantity; } 标记要复制的列来选择要复制的列。 我通过期望它具有标识data来获取发票表。 FX。 invoice + number。每行和输入字段也是如此。

这是plunker with a full example

修改

应该只有一个发票表,其中添加了所有产品。 通过在函数中为行插入选择相同的表,这是固定的。

This updated plunker has the change