Если оператор не работает на счетчике пробела - PullRequest
0 голосов
/ 05 августа 2020

Итак, я построил счетчик, но мне не удалось реализовать операторы if.

Пример:

if (hits == 1) {alert("hello world1")}
if (hits == 2) {alert("hello world2")}
if (hits == 3) {alert("hello world3")}
if (hits == 4) {alert("hello world4")}

Это мой код

    <html>
    <body>

    <p id="hits" value="0"> </p>

    <script>
      var hits = 0;
      var hitElement = document.getElementById("hits");
      document.body.onkeyup = function(e) {
        if (e.keyCode == 32) {addHit()}
      }
      var addHit = function() {hits++; renderHits()}
      var renderHits = function() {hitElement.innerHTML = hits % 5}
      var resetHits = function() {renderHits()}
    </script>

    </body>
    </html>

Также Мне было интересно, можно ли заставить его работать на основе .value вместо .inner HTML (потому что моя цель состоит в том, чтобы счетчик пробелов работал «за кулисами», поэтому он не должен быть виден).

Спасибо!

Ответы [ 3 ]

1 голос
/ 05 августа 2020
    <body>
    <h1>HELLO WORLD</h1>
    <p id="hits" value="0"> 0</p>

 <script>
 var hits = 0;
 var hitElement = document.getElementById("hits");
 document.body.onkeyup = function(e) {
 if (e.keyCode == 32) {addHit()}}
 var addHit = function() {hits++; renderHits()}
 var renderHits = function() {hitElement.innerText = hits % 5}
  var resetHits = function() {renderHits()}
1 голос
/ 05 августа 2020

на самом деле моя цель - переключаться между изображениями, нажимая кнопку ввода

let hits = 0;
const hitElement = document.getElementById("hits");

const images = [
    "https://via.placeholder.com/50x50.png?text=qwe", // your 1 image
    "https://via.placeholder.com/50x50.png?text=rty", // your 2 image
    "https://via.placeholder.com/50x50.png?text=uyi", // your 3 image
    "https://via.placeholder.com/50x50.png?text=opd", // your 4 image
    "https://via.placeholder.com/50x50.png?text=asd", // your 5 image
];

document.body.onkeyup = function (e) {
    if (e.keyCode === 32) {
        hits++;
        hitElement.src = images[hits % images.length];
    }
};
<p>Press spacebar</p>
<img id="hits" src="https://via.placeholder.com/50x50.png?text=qwe" />
0 голосов
/ 05 августа 2020

Это вещь "попадает% 5". Интерпретатор видит это как ((lresult = a)% b), а не (lresult = (a% b)).

Требуются скобки.

let hits = 0;
const hitElement = document.getElementById("hits");

document.body.onkeyup = function (e) {
    if (e.keyCode === 32) {
        hits++;
        hitElement.src = `https://via.placeholder.com/50x50.png?text=${(hits % 5)  + 1}`;
    }
};
<p>Press spacebar</p>
<img id="hits" src="https://via.placeholder.com/50x50.png?text=1"></ing>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...