Использование переменной from в следующей функции - PullRequest
1 голос
/ 12 марта 2020

Я пытаюсь решить проблему с получением значений из опции. Когда я выбираю одно число из числа выбранных, число печатается правильно в теге p, и пусть индекс также корректен, но я хочу использовать 'const n' в следующей функции в этой программе. Просто для тестирования я создаю функцию send () для проверки, могу ли я использовать эту переменную, но все время console.log равен NaN. Как я могу решить это?

<p id="p">Your number is: 0</p>

<select id="select">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>

<button onclick="send();">SEND</button>


//JS
var selectElem = document.getElementById('select')
    var pElem = document.getElementById('p')


const n = selectElem.addEventListener('change', function() {
  let index = selectElem.value;

  pElem.innerHTML = 'Your number is: ' + index;
  return index;

})

console.log(n);
const a  = n*2;
function send(){
  console.log('-----');
  console.log(n);
  console.log(a);
}

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Вы можете создать функцию setN и вызвать ее для обновления object.n .. Смотрите мой пример

//JS
var selectElem = document.getElementById('select')
    var pElem = document.getElementById('p')

  var obj ={
    n:'weqwe'
    }
   function setN(n){ 
     obj.n =n
  }
 selectElem.addEventListener('change', function(obj) {
  let index = selectElem.value;

  setN( selectElem.value);
  pElem.innerHTML = 'Your number is: ' + index;
  return index;

})
     
  function send(){
    
    console.log(obj.n)
  }

  
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<p id="p">Your number is: 0</p>

<select id="select">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
</select>

<button onclick="send();">SEND</button>

</body>
</html>
1 голос
/ 12 марта 2020

Ну, второй параметр (функция) - это обратный вызов. Кроме того, вы можете использовать window, чтобы получить нужные объекты

var a=10
function send(){
 console.log('-----');
 console.log(window.n);
 console.log(window.a);
}

также, JS является языком на основе прототипов. Так что я сомневаюсь, что он имеет какое-либо отношение к classes. (Синтаксически, да, может быть)

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