Как вставить .each (function ())

0

Это мой код:

$("table.order-list").find('input[name^="total"]').each(function () {
        grandTotal += +$(this).val();
        valNum.find('input[name^="percentage"]').val((totalTime / grandTotal * 100).toFixed(1));
    });

Как вставить цикл в этот код: valNum.find('input[name^="percentage"]').val((totalTime/grandTotal * 100).toFixed(1)); , Я хотел бы переписать или вызвать весь input[name^="percentage"] чтобы пересчитать формулу.

Здесь ссылка, если вы хотите увидеть поток кода: http://jsfiddle.net/Ellyse/47x2N/4/ Здесь как это работает: Введите значения в количестве и попробуйте вставить значения в первую строку, нажав checkbox, он автоматически вычислит столбец "Общее время", "Процент", "Оценка времени". То же самое для значений вставки второй строки, обратите внимание, что процент для первой строки изменяется, но это не точный результат для этого, когда вы добавляете весь процент, он должен быть 100%. Вот почему я спрашиваю, как вставить эту функцию в этот код: valNum.find('input[name^="percentage"]').val((totalTime/grandTotal * 100).toFixed(1)); так что он пересчитает формулу.

  • 0
    Почему бы вам не добавить .each после find('input[name^="percentage"]') как вы сделали в первой строке?
  • 0
    Вы имеете в виду, как это: valNum.find ('input [name ^ = "процент"]'). Each (). Val ((totalTime / grandTotal * 100) .toFixed (1)) ;? Не работает.:(
Показать ещё 8 комментариев
Теги:

1 ответ

0
Лучший ответ

РЕДАКТИРОВАТЬ:

После просмотра кода и правильного анализа. Я думаю, что это то, что вы искали с очень долгого времени (не менее 3 дней) :).

Замените все это js в коде. Я много изменил свой код. См. Рабочую демонстрацию здесь: http://jsfiddle.net/khurram_khu/KYzQR/

$(document).ready(function () {
    $('td input[type="checkbox"]').click(function () {
        $(this).closest('tr').find('input[type="text"]').prop('disabled', !this.checked);
    }).change();
    $('input[name^="txt1"], input[name^="txt2"], #qty').on("keyup", function () {
        calculate();
    });
});

function calculate() {
    var grandTotal = 0;
    $('table.order-list tr input[name^="txt1"]:enabled').closest('tr').each(function () {
        var row = $(this);
        var qty = +$('#qty').val();
        var teo = +row.find('input[name^="txt1"]').val();
        var tep = +row.find('input[name^="txt2"]').val();
        var totalTime = (teo + (qty * tep)).toFixed(2);
        grandTotal += +totalTime;
        row.find('input[name^="total"]').val(totalTime);
    });

    var totalAll = $("#grandtotal").val(grandTotal.toFixed(2));
    $('#time').val((grandTotal / 60).toFixed(2));

    $('table.order-list tr input[name^="txt1"]:enabled').closest('tr').each(function () {
        var row = $(this);
        var totalTime = row.find('input[name^="total"]').val();
        row.find('input[name^="percentage"]').val((totalTime / grandTotal * 100).toFixed(1));
    });
}

Надеюсь, это то, что вам нужно. Если это поможет вам отметить это как ответ.

  • 0
    Не работает! :( Вот ссылка: jsfiddle.net/Ellyse/47x2N/4 для вас, чтобы увидеть поток. Введите значения в количестве и попробуйте вставить значения в первую строку, установив флажок, он автоматически вычислит столбец для «Общее время», «Процент», «Оценка времени». То же самое для значений вставки второй строки, обратите внимание, что процент для изменения первой строки, но это не точный результат для этого, потому что при сложении всего процента это должно быть 100 %.
  • 0
    Пожалуйста, помогите мне.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню