如何获取兄弟类(.priceToCalc)的值并在单击兄弟之后设置另一个类(.totalAmt)的值

时间:2016-05-12 16:08:39

标签: jquery razor event-handling siblings

如何在用户在(.numItems)输入中输入值后获取兄弟类(.priceToCalc)的值并设置类的值(.totalAmt)。

<table>
    <tr id="mainRow">
        <td>
            @Html.DisplayFor(modelItem => item.CategoryDesc)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.HasPicture)
        </td>
        <td id="tdNumItems">
            <form asp-controller="Index" name="Quantity">
                <p>
                    Quantity: <input type="text" name="quantity" size="3" id="number-@(item.itemKey)" class="numItems">
                </p>
            </form>
        </td>
        <td id="uprice-@(item.itemKey)" class="priceToCalc" data-topass="@item.UnitPrice" >
            @Html.DisplayFor(modelItem => item.UnitPrice)
        </td>
        <td>
            <form  asp-controller="Index" name="Amount">
                <p id="price">
                    Amount: <input type="text" name="Amount" size="5" disabled="disabled" id="amt-@(item.itemKey)" class="totalAmt">
                </p>  
            </form>
        </td>
    </tr>
</table>
$(document).ready(function () {
    $('.numItems').mouseleave(function () {
        var numberVal = $(this).val();
        var idOfAmt = $(event.target).attr('id');
        var valueTomult=($("#tdNumItems").siblings('.priceToCalc').text());
        idOfAmt = idOfAmt.split('-');
        var idOfPrice; //value of next sibling,don't know this either
        alert(idOfAmt[1] + '- val>' + numberVal + '-amt>' + valueTomult);

    });
});

它只返回选择器.priceToCalc的第一个循环的值。

1 个答案:

答案 0 :(得分:0)

首先在mouseleave上执行此操作有点奇怪。用户最好在键入时查看计算更改,您可以使用keyup来实现。

要实际执行您需要的操作,您可以使用DOM遍历来查找最接近引发事件的tr的{​​{1}},然后input以检索所需的子元素以进行计算上。像这样:

find()

Working Example