计算多个单独行的乘积

时间:2018-04-09 03:19:35

标签: jquery html

问题: 在第一行下面添加的任何行总是给出第一行的乘积。

下面提到的HTML有一个jQuery脚本,用于计算表行的两个输入字段值的乘积。第一个之后的多行也面临同样的问题。

注意:这不是我的整个文件,只是我遇到问题的部分。

window.close()

2 个答案:

答案 0 :(得分:1)

好吧,试试吧。不要硬编码访问元素的方式。这有时会让生活变得困难。只需使用event,您就可以完成本项目的所有操作。



$(document).ready(function(){


                $('.calc').on("keypress", function(e) {
                /* ENTER PRESSED*/
                    if (e.keyCode == 13) {
					 
                        var ptag4 = 1;
						 
                        var ptag1 = $(e.target).parent().prev().find("input").val();
                        var ptag2 = $(e.target).val();
                        $(this).append(ptag4 + "," + ptag1 + "," + ptag2 + ", ");
                        var ptag3 = ptag1*ptag2;
                        //troubleshoot value fetch
                        $(e.target).parent().next().html(ptag3);
                    }
                });
            });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<body>
   <table class="calc">
        <tbody><tr class="ka">
            <th>Kōmoku-mei</th>
            <th>Kakaku</th>
            <th>Ryō</th>
            <th>Gōkei</th>
        </tr>
        <tr class="ka">
            <td class="kom">
                Gom Kōmoku
            </td>
            <td class="ryo">
                <input readonly="readonly" class="shit" type="text" name="val1" value="23">
            </td>
            <td class="qty">
                <input class="kin" type="text" name="val1" value="1">
            </td>
            <td class="gokei">
                276
            </td>
            <td class="closeb">
                X
            </td>
        </tr>
        <tr class="ka">
            <td class="kom">
                Gom Kōmoku
            </td>
            <td class="ryo">
                <input readonly="readonly" type="text" name="val1" value="23">
            </td>
            <td class="qty">
                <input class="kin" type="text" name="val1" value="1">
            </td>
            <td class="gokei">
                276
            </td>
            <td class="closeb">
                X
            </td>
        </tr>
        <tr class="ka">
            <td class="kom">
                Gom Kōmoku
            </td>
            <td class="ryo">
                <input readonly="readonly" type="text" name="val1" value="23">
            </td>
            <td class="qty">
                <input class="kin" type="text" name="val1" value="1">
            </td>
            <td class="gokei">
                276
            </td>
            <td class="closeb">
                X
            </td>
        </tr>
    </table>
    </body>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我认为问题在于您的选择器。它总是为您提供前两个输入框。使用.closest()选择器解决问题的众多方法之一。距离最近,您将获得最接近的文本框。

详细了解.closessthttps://api.jquery.com/closest/