如何在用户在(.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的第一个循环的值。
答案 0 :(得分:0)
首先在mouseleave
上执行此操作有点奇怪。用户最好在键入时查看计算更改,您可以使用keyup
来实现。
要实际执行您需要的操作,您可以使用DOM遍历来查找最接近引发事件的tr
的{{1}},然后input
以检索所需的子元素以进行计算上。像这样:
find()