Как увеличить значение в таблице с предыдущим значением в таблице? - PullRequest
0 голосов
/ 24 июня 2019

Я создал программу, которая позволяет вам набирать ваш счет, используя JavaScript и HTML; это добавляет новую строку в таблицу со связными баллами.

Я хочу иметь возможность использовать те же поля ввода для ввода нового счета, который суммируется с предыдущим набранным счетом. Я не могу понять, как сохранить предыдущий набранный счет, чтобы он не стал вновь набранным.

Я попытался создать два разных списка и поместить список «предыдущих результатов» в глобальном масштабе, но он все равно в итоге содержит те же результаты.

function list_of_scores() {
  var scores = ["1"];
  var count = 1;

  for (var i = 1; i <= number_players; i++) {
    var id = "score_" + count;
    var score = parseInt(document.getElementById(id).value);
    scores.push(score);
    count++;
  }

  return scores;
}

function table_func() {
  var table = document.getElementById("myTable");
  var row = table.insertRow();

  var scores = list_of_scores();

  scores[0] = table_count_1;
  table_count_1++;

  for (var i = 0; i < scores.length; i++) {
    var cell = row.insertCell();
    cell.innerHTML = scores[i];
  }
}

Счёт - это список набранных баллов Мне нужно добавить каждый элемент этого списка в новый список, содержащий второй набор баллов. Первый элемент в списке не является счетом, но представляет «Раунд» на табло.

1 Ответ

0 голосов
/ 24 июня 2019
//Event listener for submit button of your input field.
document.getElementById("btn").addEventListener("click",()=>{
    let input = document.getElementById("inputText").value;
    let table = document.getElementById("myTable");
    var previousCell = table.rows[table.rows.length-1].innerText;
    var row = table.insertRow(table.rows.length);
    var cell1 = row.insertCell(0);
    //if else statement sets previous cell value to 0 if previous cell returns NaN.
    if(isNaN(parseInt(previousCell))){
        previousCell = "0";
        let newVal = parseInt(previousCell) + parseInt(input);
        cell1.innerHTML = newVal.toString();
    }
    else{
        let newVal = parseInt(previousCell) + parseInt(input);
        cell1.innerHTML = newVal.toString();
    }
});

Если все, что вам нужно, это чтобы сумма суммировалась, вы можете сделать что-то вроде этого.Все, что делает этот код - получает значение поля ввода и предыдущей ячейки, добавляет их и создает новую строку с указанным значением.

...