Как работает синтаксический анализ Int вычитание в JS (Ioni c 5 + Angular)? - PullRequest
0 голосов
/ 04 февраля 2020

Я работаю над игрой на основе вопросов в Ioni c 5, используя Angular. Ранее я спрашивал, как заставить кнопку сложения работать, как предполагалось, и она работала отлично, но теперь, когда я пытаюсь использовать те же методы для вычитания точек, я получаю поле «Nan».

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

Я супер новичок в Ioni c и HTML в целом, поэтому мой код, вероятно, будет довольно мусором. Любая помощь будет отличной!

Ниже приведен код перед любыми моими изменениями.


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Point Game</title>
  <script type="module" src="https://cdn.jsdelivr.net/npm/@ionic/core@4.7.4/dist/ionic/ionic.esm.js"></script>
  <script nomodule src="https://cdn.jsdelivr.net/npm/@ionic/core@4.7.4/dist/ionic/ionic.js"></script>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ionic/core@4.7.4/css/ionic.bundle.css"/>
  <style>
    :root {
      --ion-safe-area-top: 20px;
      --ion-safe-area-bottom: 22px;
    }
  </style>
  <script>

    function openMenu() {
      document.querySelector('ion-menu-controller').open();
    }

    function p1point(){
      var p1pp = document.getElementById("p1p").innerText; //getting text inside element
      p1pp = parseInt(p1pp) + 1; //Increment
      document.getElementById("p1p").innerHTML = p1pp; // Writing values
    }
    function p2point(){
      var p2pp = document.getElementById("p2p").innerText; //getting text inside element
      p2pp = parseInt(p2pp) + 1; //Increment
      document.getElementById("p2p").innerHTML = p2pp; // Writing values
    }
    function p1minus(){
      var p1mm = document.getElementById("p1min").innerText; //getting text inside element
      p1mm = parseInt(p1mm) - 1; //Increment
      document.getElementById("p1min").innerHTML = p1mm; // Writing values
    }
    function p2minus(){
      var p2mm = document.getElementById("p2min").innerText; //getting text inside element
      p2mm = parseInt(p2mm) - 1; //Increment
      document.getElementById("p2min").innerHTML = p2mm; // Writing values
    }
  </script>
</head>
<body>
  <ion-app>
    <ion-menu side="start">
      <ion-header>
        <ion-toolbar translucent>
          <ion-title>Menu</ion-title>
        </ion-toolbar>
      </ion-header>
      <ion-content>
        <ion-list>
          <ion-item>
            <ion-icon name="home" slot="start"></ion-icon>
            <ion-label>Home</ion-label>
          </ion-item>
          <ion-item>
            <ion-icon name="person" slot="start"></ion-icon>
            <ion-label>Profile</ion-label>
          </ion-item>
          <ion-item>
            <ion-icon name="chatbubbles" slot="start"></ion-icon>
            <ion-label>Messages</ion-label>
          </ion-item>
          <ion-item>
            <ion-icon name="settings" slot="start"></ion-icon>
            <ion-label>Settings</ion-label>
          </ion-item>
        </ion-list>
      </ion-content>
    </ion-menu>

    <div class="ion-page" main>
      <ion-header>
        <ion-toolbar>
          <ion-buttons slot="start">
            <ion-menu-button></ion-menu-button>
          </ion-buttons>
          <ion-title>Point Game</ion-title>
        </ion-toolbar>
      </ion-header>
      <ion-content class="ion-padding">
        <ion-grid>
          <ion-row>
            <ion-col>
              <ion-card>
                <!--Player 1 score-->
                <ion-card-header>
                  <ion-card-subtitle class = "ion-text-center">Player 1</ion-card-subtitle>
                  <ion-card-title class = "ion-text-center" id = "p1p">0</ion-card-title>
                </ion-card-header>
              </ion-card>
            </ion-col>
            <ion-col size = -1>
              <!-- fake inner thing psuedo-col-->

            </ion-col>
            <ion-col>
              <ion-card>
                <!--Player 2 score-->
                <ion-card-header>
                  <ion-card-subtitle class = "ion-text-center">Player 2</ion-card-subtitle>
                  <ion-card-title class = "ion-text-center" id = "p2p">0</ion-card-title>
                </ion-card-header>
              </ion-card>
            </ion-col>
          </ion-row>
          <ion-row>
            <ion-col width-50 style = "text-align: right">
              <ion-button id = "p1plus" onclick="p1point()" > + </ion-button>
            </ion-col>
            <ion-col size = .15>
              <!-- fake inner thing psuedo-col-->

            </ion-col>
            <ion-col width-50 style = "text-align: right">
              <ion-button id = "p2plus" onclick="p2point()"> + </ion-button>
            </ion-col>
            <ion-col size = -3>
              <!-- fake inner thing psuedo-col-->

            </ion-col>
          </ion-row>
        </ion-row>
        <ion-row>
          <ion-col width-50 style = "text-align: right">
            <ion-button id = "p1min" onclick="p1minus()" >  -  </ion-button>
          </ion-col>
          <ion-col size = .15>
            <!-- fake inner thing psuedo-col-->

          </ion-col>
          <ion-col width-50 style = "text-align: right">
            <ion-button id = "p2min" onclick="p2minus()">  -  </ion-button>
          </ion-col>
          <ion-col size = -3>
            <!-- fake inner thing psuedo-col-->

          </ion-col>
        </ion-row>
        </ion-grid>

      </ion-content>
    </div>
  </ion-app>
  <ion-menu-controller></ion-menu-controller>


</body>
</html>

1 Ответ

1 голос
/ 04 февраля 2020

Я думаю, что проблема ваших минус функций в том, что вы получаете innerText кнопок. Вы используете p1min и p2min идентификаторы, и эти тексты не являются числами. Вот почему вы получаете NaN.

...