как получить выделенный элемент с помощью функции getSelectedCurrency () в следующем коде - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю приложение для конвертации валют и пытаюсь выбрать валюту с помощью функции getSelectedCurrency() в моем коде.Когда я фиксирую значение лога в своем коде, он возвращает текст, но не удовлетворяет тесту TDD возврата выбранной валюты

Я пытался использовать прослушиватель событий, но прослушиватели событий обычно возвращают неопределенное

 // declare populateCurrencies here      
   const populateCurrencies = ()=>{
    currencies.forEach((x)=>{
      let elt = document.querySelector('.select-text');
      let newElt = document.createElement('option');
      let newText = document.createTextNode(x.name);
      newElt.appendChild(newText);
      newElt.setAttribute('value',x.id);
      elt.appendChild(newElt);
    })
      let elt = document.querySelector('.select-text');
    elt.addEventListener('change',()=>{
       let currentlySelected =document.querySelector('[selected]');
       currentlySelected.removeAttribute('selected');
       elt.selectedOptions[0].setAttribute('selected','');
      },false)
    }

   function getSelectedCurrency(){
    // here, determine and return the selected value 
    // of the SELECT element
    let currentlySelected= document.querySelector('.select-text');
    let value= currentlySelected.selectedOptions[0].text;
    return((String(value)));
  };
  const convert = (event) => {
    toast(`preparing to convert ...`);

    const btn = event ? 
          event.target : document.querySelector('button');

    const selected = getSelectedCurrency();
    console.log(selected);

    if(!selected || selected.trim() === '' 
       || !currencies.map(c => c.id).includes(selected)) return;

    btn.setAttribute('disabled', 'disabled');
    toast(`converting ...`);

    const endpoint = api(selected);

Я ожидаю, что getSelectedCurrency() вернет строку, но ничего не получится.

1 Ответ

0 голосов
/ 13 февраля 2019

Вы неправильно выбрали опцию

function getSelectedCurrency(){
    // here, determine and return the selected value 
    // of the SELECT element
    let currentlySelected= document.querySelector('.select-text');
    let value= currentlySelected.options[currentlySelected.selectedIndex].textContent;
    if(value="")
    return false;
    else
    return value;
  };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...