Integer to String. Как я могу исправить следующую ошибку: «Ошибка типа: Не удается преобразовать неопределенное в объект»? - PullRequest
0 голосов
/ 17 января 2019

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

Всякий раз, когда я запускаю код, он возвращает undefined, когда я использую toString() или TypeError: невозможно преобразовать undefined в объект , когда я разделяю numGenerated . Я пытался использовать функцию toString(), но мне возвращают undefined.

var numGenerated;
var x = (document.querySelector("#generated_number").innerHTML = "".split
  .call(numGenerated, "")
  .join(""));

function highLow() {
  var storeNum = Math.floor(Math.random() * 11) + 0;
  numGenerated = storeNum;
}

Я ожидаю получить возвращенную строку, которую можно использовать в элементе HTML для отображения результата.

Вот HTML:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8" />
    <title>Betting Project</title>
    <link rel="stylesheet" href="betting.css" />
  </head>
  <body>
    <div class="cash_total">
      <p>Your balance is: <span id="amount"></span>.</p>
    </div>
    <h1 style="text-align: center;">BET NOW</h1>
    <div class="bet_amount">
      <button class="five" value="5">5</button>
      <button class="ten" value="10">10</button>
      <button class="fifty" value="50">50</button>
      <button class="hundred" value="100">100</button>
    </div>
    <div id="generated_number"></div>
    <div class="buttonHolder" style="text-align: center;">
      <button id="lower">LOWER</button> <button id="higher">HIGHER</button>
    </div>
    <script src="betting.js"></script>
  </body>
</html>

1 Ответ

0 голосов
/ 17 января 2019

Это потому что в этой строке:

var x = document.querySelector('#generated_number').innerHTML = "".split.call(numGenerated,"").join("");

Вы присваиваете переменную присваиванию другой переменной - вам даже не нужно x. Удалите var x =, а затем, чтобы исправить следующую ошибку, поместите строку внутри функции:

function updateDisplay() {
    document.querySelector('#generated_number').innerHTML = "".split.call(numGenerated,"").join("");
}

Рабочая демонстрация:

var numGenerated;

function updateDisplay() {
  document.querySelector('#generated_number').innerHTML = "".split.call(numGenerated, "").join("");
}

function highLow() {
  var storeNum = Math.floor(Math.random() * 11) + 0;
  numGenerated = storeNum;
}

highLow();
updateDisplay();
<div class="cash_total">
  <p>Your balance is: <span id="amount"></span>.</p>
</div>
<h1 style="text-align: center;">BET NOW</h1>
<div class="bet_amount">
  <button class="five" value="5">5</button>
  <button class="ten" value="10">10</button>
  <button class="fifty" value="50">50</button>
  <button class="hundred" value="100">100</button>
</div>
<div id="generated_number"></div>
<div class="buttonHolder" style="text-align: center;">
  <button id="lower">LOWER</button>
  <button id="higher">HIGHER</button>
</div>

Приведенный выше фрагмент кода вызывает обе функции вручную, но имеет смысл привязать их к нажатию кнопки следующим образом:

<button id="random" onclick="highLow()">Randomise</button>
<button id="update" onclick="updateDisplay()">Update Display</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...