Javascript 如何在下面的代码中使用函数getSelectedCurrency()获取选定元素

Javascript 如何在下面的代码中使用函数getSelectedCurrency()获取选定元素,javascript,dom,Javascript,Dom,我正在构建一个货币转换器应用程序,并尝试使用代码中的getSelectedCurrency()函数选择货币。当我在代码中控制台日志值时,它返回文本,但不满足返回所选货币的TDD测试 我尝试过使用事件侦听器,但事件侦听器通常返回未定义的 // declare populateCurrencies here const populateCurrencies = ()=>{ currencies.forEach((x)=>{ let elt = do

我正在构建一个货币转换器应用程序,并尝试使用代码中的
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()
返回一个字符串,但它什么也不返回。

您选择选项的方式错误

函数getSelectedCurrency(){ //在此,确定并返回所选值 //选择元素的名称 让currentlySelected=document.querySelector('.select text'); 让value=currentlySelected.options[currentlySelected.selectedIndex].textContent; 如果(值=”) 返回false; 其他的 返回值;
};返回undefined@DamilolaOluwasusi然后,
querySelector
错误或没有选择选项。检查
currentlySelected
是否是您需要的元素,并确保有一个选中的选项。它起作用了,但问题是:当我调用启动应用程序的startApp()时,getSelectedCurrency()的值返回默认禁用的选择货币文本。。。。。。。const startApp=()=>{populateCurrencies();document.querySelector('button')。addEventListener('click',(event)=>{convert(event)},false);};startApp();函数getSelectedCurrency();返回未定义的