【问题标题】:How to reduce a number to a text input box based on a specific table cell如何根据特定表格单元格将数字减少为文本输入框
【发布时间】:2016-01-29 02:52:01
【问题描述】:

我将如何减少:

<input type="text" id="totalNumber" value="0" name="number" size="5" maxlength="2" disabled>

基于位于表格特定单元格中的数字。单元格是通过 Javascript 生成的。

HTML

<div id="tableAdjust">
    <table id="myTable" style="width:100%; border: solid black 1px;">
        <tr>
            <th>products</th>
            <th>Desciption</th> 
            <th>Extras</th>
            <th>Quantity</th>
            <th>Cost</th>
        </tr>
        <tr></tr>
    </table>
</div>

JS

var table = document.getElementById("myTable");//RETRIEVES TABLE
var row = table.insertRow(1);  //INDICATES ROW INSERTION
var cell1 = row.insertCell(0); //ASSIGNS CELL
var cell2 = row.insertCell(1); //ASSIGNS CELL
var cell3 = row.insertCell(2); //ASSIGNS CELL
var cell4 = row.insertCell(3); //ASSIGNS CELL
var cell5 = row.insertCell(4); //ASSIGNS CELL
cell1.innerHTML = cartProducts.name;//ASSIGNS CART PRODUCT NAME
cell2.innerHTML = cartProducts.descript;//ASSIGNS CART PRODUCT DESCRIPTION
cell3.innerHTML = cartProductExtras;//ASSIGNS CART PRODUCT DESCRIPTION
cell4.innerHTML = cartProductQuant;//ASSIGNS CART PRODUCT QUANTITY
cell5.innerHTML = "$ " + cartProductPrice;//ASSIGNS CART ITEM PRICE`

HTML 输入框:

<input type="text" id="userNumber" name="number" size="2" maxlength="2" value="1" >

每次单击按钮时,它都会添加到上面输入框的值,并在单元格 4 中显示用户输入。我需要单元格 4 的“值”以便将其从表格列表中删除并根据该单元格中的“值”。

重要提示:请不要使用 JQUERY。

【问题讨论】:

  • 问题不清楚。你能举个例子吗?什么被添加到什么?您的意思是在单元格中替换或添加?
  • 你的用例是这样的——jsfiddle.net/abhitalks/Ljufojsy/4 ?

标签: javascript dom html-table getelementbyid


【解决方案1】:

编辑

从单元格中获取行并将其从表中删除也很简单:

var inputA = document.getElementById("totalNumber");

// Retrieve the value in cell4 and cast it to a number.
var cell4value = parseInt(cell4.innerHTML, 10);

// Delete the row that contains cell4.
var row  = cell4.parentNode;
row.parentNode.removeChild(row);

// Subtract the value that was in cell4 from inputA value.
// Also cast inputA value to a number just in case.
inputA.value = parseInt(inputA.value, 10) - cell4value;

初始消息:

据我了解,您有 2 个 HTML 输入:A 表示总数(实际剩余的可用商品?),B 表示当用户单击按钮时要添加到用户购物车的数量。

您已经有一个系统,当用户单击按钮时,该系统会自动将 B 的值添加到 cell4。现在你想从 A 的值中减去相同的值?还是按照你描述的方式,你想读取cell4中出现的结果,然后减去A的值?请注意,在后一种情况下,如果用户多次单击按钮,您将减去超出所需的部分。

我猜你不能修改已经添加到 B 中的代码,否则添加一行代码从 A 中减去相同的数量是微不足道的:document.getElementById("totalNumber").value -= addedAmount;

按照你描述的方式,我们先看cell4的新内容:var newCell4qty = parseInt(cell4.innerHTML, 10);

然后像最初的命题一样从 A 中减去它:document.getElementById("totalNumber").value -= newCell4qty;

但听起来更符合逻辑的是读取 B 的值用于减法:var addedAmount2 = parseInt(document.getElementById("userNumber").value, 10);

最后,您可能需要在按钮点击时增加 B 之前检查是否有足够的剩余项目。

【讨论】:

  • 我需要它来检索单元格 4 的值,然后删除它包含的行。之后它必须从 A 中减去收集的值。
  • 哦,你的意思是要清除cell4的内容?还是删除整行?
  • 收集cell4后删除整行,并用收集到的cell数据减去total的值。
猜你喜欢
  • 2016-04-04
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-12
  • 2016-03-08
  • 2019-11-10
  • 1970-01-01
相关资源
最近更新 更多