Как поймать с помощью JavaScript HTML-элемент (из DOM), возвращая это «это»? - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь получить элемент HTML с querySelector, но он возвращает null.Как я могу получить это?

btn - это «это» кнопки:

<button class="Medium" onclick="restartGame(this, 1)">Medium</button>

Функция, которую я пытался:

function setCurrLevel(btn) {
    var elCurrBtn = document.querySelector(`${btn.class}`);

    if (elCurrBtn.innerText === 'Easy') {
        gCurrLevel = 0; 
    } else if (elCurrBtn.innerText === 'Medium') {
        gCurrLevel = 1; 
    } else if (elCurrBtn.innerText === 'Hard') {
        gCurrLevel = 2; 
    } 

    return gCurrLevel;
}

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Если ваш элемент кнопки передан в setCurrLevel, вам больше не нужно его выбирать

  function setCurrLevel(btn) {
    var gCurrLevel = 0;
    if (btn.innerText === 'Easy') {
        gCurrLevel = 0; 
    } else if (btn.innerText === 'Medium') {
        gCurrLevel = 1; 
    } else if (btn.innerText === 'Hard') {
        gCurrLevel = 2; 
    } 

    return gCurrLevel;
 }
0 голосов
/ 27 сентября 2018

Если btn уже ссылается на кнопку, вам не нужно querySelector вообще.Просто используйте btn:

var gCurrLevel;
function setCurrLevel(btn) {
  if (btn.innerText === 'Easy') {
    gCurrLevel = 0;
  } else if (btn.innerText === 'Medium') {
    gCurrLevel = 1;
  } else if (btn.innerText === 'Hard') {
    gCurrLevel = 2;
  }

  console.log("gCurrLevel = " + gCurrLevel);
  // return gCurrLevel; // Don't do this in an event handler
}
<button class="Medium" onclick="setCurrLevel(this)">Medium</button>

Там я заменил resetGame(this, 1) на setCurrLevel(this), чтобы они совпали, но при необходимости отрегулируйте.

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