提问者:小点点

JavaScript:如何在if语句中检查DOM输入值作为参数


我最近在看JavaScript在线课程,我构建了“猪游戏”。 有一个输入框用于设置获胜分数。 我想改进它,如果用户键入的值不是'number',那么它的值将自动更改为'100'作为默认值。 我把if语句放在那里,但我不能解出它的参数。 例如,如果(输入===number)不起作用。

您可以查看我的github(https://github.com/wonkooklee/pig-game),代码如下

//
document.querySelector('.btn-hold').addEventListener('click', function() {


if (gamePlaying) {
    scores[activePlayer] += roundScore;
    document.getElementById(`score-${activePlayer}`).textContent = scores[activePlayer];
let input = document.getElementById('scoreSet').value;
let winningScore;

if (input === number) {  // This is that I'm dealing with
  winningScore = input;
} else {
  document.getElementById('scoreSet').value = '100';
}

if (scores[activePlayer] >= winningScore) {

  document.getElementById(`name-${activePlayer}`).textContent = 'WINNER!';
  document.querySelector(`.player-${activePlayer}-panel`).classList.add('winner');
  document.querySelector(`.player-${activePlayer}-panel`).classList.remove('active');
  diceDOM.style.display = 'none';
  gamePlaying = false;
} else {
  nextPlayer();
}

  }

});

共3个答案

匿名用户

下面是您想要的(如果您想要的是检查用户是否输入了输入,那么值将不是“”(这将是假的),因此测试if(input)将是真的):

null

document.querySelector('.btn-hold').addEventListener('click', function () {


    if (gamePlaying) {
        scores[activePlayer] += roundScore;
        document.getElementById(`score-${activePlayer}`).textContent = scores[activePlayer];
        let input = document.getElementById('scoreSet').value;
        let winningScore;

        if (input) {
            winningScore = input;
        } else {
            document.getElementById('scoreSet').value = '100';
        }

        if (scores[activePlayer] >= winningScore) {

            document.getElementById(`name-${activePlayer}`).textContent = 'WINNER!';
            document.querySelector(`.player-${activePlayer}-panel`).classList.add('winner');
            document.querySelector(`.player-${activePlayer}-panel`).classList.remove('active');
            diceDOM.style.display = 'none';
            gamePlaying = false;
        } else {
            nextPlayer();
        }

    }

});

匿名用户

Wonkook Lee,欢迎来到StackOverflow!

您可以使用类型:

https://developer.mozilla.org/pt-br/docs/web/javascript/reference/operators/typeof

例:if((输入类型)===string){//这就是我要处理的问题

匿名用户

哎呀,对不起。 我指的不是'string',而是'number',但变量中的dom.value只将其识别为'string'。 我想是因为用单引号。