Как рассчитать запас с JQuery
Я не очень хорошо говорю по английски. У меня большая проблема, потому что я не знаю jquery. Я хочу разработать расчет запасов следующим образом:
<table id="tabla">
<thead>
<tr>
<th>producto</th>
<th>entry</th>
<th>exit</th>
<th>stock</th>
</tr>
</thead>
<tbody>
<tr><td class="opening balance">10</td></tr>
<tr>
<td class="info">TP031</td>
<td class="entry">4</td>
<td class="exit">0</td>
<td class="stock">14</td>
</tr>
<tr>
<td class="info">SI0352</td>
<td id="entry">0</td>
<td class="exit">3</td>
<td class="stock">11</td>
</tr>
<tr>
<td class="info">MP4012</td>
<td class="entry">0</td>
<td class="exit">3</td>
<td class="stock">9</td>
</tr>
</tbody>
</table>
Я хотел бы сделать это с помощью jquery. Я надеюсь, что это понято. Привет из Чили.
3 ответа
Решение
Это то, что вам нужно:
// First initialize the default variables, with your opening balance
var stockCount = 0;
var updatedStock = Number($(".opening.balance").html()) == "NaN" ? 0 : Number($(".opening.balance").html());
// For each "product", calculates the stock with the previous stock
$("tr.product").each(function(index) {
stockCount = 0;
// Number is used to convert string to number, so we can calculate
var entry = Number($("td.entry", $(this)).html());
var exit = Number($("td.exit", $(this)).html());
entry = entry == "NaN" ? 0 : entry;
exit = exit == "NaN" ? 0 : exit;
var stock = updatedStock + entry - exit;
updatedStock = stock;
stockCount += stock;
$("td.stock", $(this)).html(stock);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="tabla">
<thead>
<tr>
<th>producto</th>
<th>entry</th>
<th>exit</th>
<th>stock</th>
</tr>
</thead>
<tbody>
<tr><td class="opening balance">10</td></tr>
<tr class="product">
<td class="info">TP031</td>
<td class="entry">4</td>
<td class="exit">0</td>
<td class="stock"></td>
</tr>
<tr class="product">
<td class="info">SI0352</td>
<td class="entry">0</td>
<td class="exit">3</td>
<td class="stock"></td>
</tr>
<tr class="product">
<td class="info">MP4012</td>
<td class="entry">0</td>
<td class="exit">3</td>
<td class="stock"></td>
</tr>
</tbody>
</table>
Будьте осторожны, вы установили идентификатор для второго ряда.
Вы можете связать событие нажатия с кнопкой для расчета:)
Надеюсь, я помог.
Насколько я понимаю, вам нужно получить общее количество акций.
Этого можно добиться, добавив все акции. Нам нужно использовать jquery each
для этого.
Следующий код даст общее количество акций.
var stockTotal=0;
$(function(){
$('.stock').each(function(){
stockTotal= stockTotal+ parseInt($(this).text());
});
alert(stockTotal);
});
Рабочая скрипка
Надеюсь это поможет.
-Помогите:)
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(document).ready(function(){
var iTotalStock = 0;
$('#tabla tbody tr').find('td.stock').each(function () {
iTotalStock = iTotalStock + parseInt($(this).text(), 10);
});
$('#total').val(iTotalStock)
});
</script>
</head>
<body>
<table id="tabla">
<thead>
<tr>
<th>producto</th>
<th>entry</th>
<th>exit</th>
<th>stock</th>
</tr>
</thead>
<tbody>
<tr><td class="opening balance">10</td></tr>
<tr>
<td class="info">TP031</td>
<td class="entry">4</td>
<td class="exit">0</td>
<td class="stock">14</td>
</tr>
<tr>
<td class="info">SI0352</td>
<td id="entry">0</td>
<td class="exit">3</td>
<td class="stock">11</td>
</tr>
<tr>
<td class="info">MP4012</td>
<td class="entry">0</td>
<td class="exit">3</td>
<td class="stock">9</td>
</tr>
</tbody>
</table>
<br /><br />
Total<input type="text" id="total"/>
</body>
</html>