Примечание 1 : я предполагаю, что будет несколько строк, поэтому вы должны удалить атрибуты ID из ваших входных данных, поскольку идентификатор должен быть уникальным в документе HTML.
Примечание 2 : Я не уверен, что полностью понимаю расчет, который вы хотите сделать. «Цена продажи» зависит от «FVF», «FVF» зависит от «сборов Ebay», а «сборы Ebay» зависят от «цены продажи» ... Мне кажется, что рассчитать с помощью этой рекурсивной зависимости немного невозможно
Примечание 3 : Вы используете элемент insertionfee
в своем примере, но я не в предоставленной вами разметке.
Некоторые примечания к следующему коду:
получить объект jquery для текущего <tr>
для повторного использования с $this = $(this)
Найдите все необходимые элементы для повторного использования. кроме того, это более эффективно благодаря $this
делая это $item.val(myvariable = 1+1)
фактически сохраняет вычисление в myvariable
и передает его .val()
это condition ? <if condition true> : <if condition false>
позволяет делать встроенные условные операторы
я не смог использовать .toFixed(2)
, думаю, это ваша функция
Я сделал jsfiddle , чтобы вы могли его увидеть.
$(document).ready(function() {
$('tr').each(function() {
var $this = $(this),
$sellingprice = $this.find('[name=sellingprice]'),
$cost = $this.find('[name=cost]'),
$postage = $this.find('[name=postage]'),
$profit = $this.find('[name=profit]'),
$paypal = $this.find('[name=paypal]'),
$ebayfees = $this.find('[name=ebayfees]'),
$discount = $this.find('[name=discount]'),
$fvf = $this.find('[name=fvf]');
var selpriceresult, paypalresult, fvfresult, ebayresult;
$sellingprice.val((selpriceresult = $cost.val() + $postage.val() + $paypal.val() + $fvf.val()));
$paypal.val(paypalresult = selpriceresult * 0.022 + 0.3);
$ebayfees.val(ebayresult = selpriceresult > 50
? (selpriceresult - 50) * 0.05 + 3.5
: selpriceresult * 0.07);
$fvf.val(fvfresult = ebayresult - (ebayresult - $discount.val()));
});
О формулах
Я проверил файл Excel. Это не так просто, как кажется. Формулы имеют зависимости, и я понятия не имею, как Excel действительно выполняет вычисления внутри.
Я знаю, что Excel создает и оптимизирует Дерево зависимостей , чтобы определить, как оно должно выполнять вычисления рабочей книги. Вы можете визуализировать зависимости и отношения между ячейками (Инструменты> Аудит), но я не гуру Excel, и это совершенно не в моих знаниях.
Я думаю, что это также немного выходит за рамки этого вопроса - который должен был объединить блоки кода jquery в один, а не конвертировать формул Excel в вычисления javascript.
Я действительно хочу помочь вам с расчетами, но я просто не могу. Вы можете задать другой вопрос по этому конкретному вопросу.