javascript - 如何访问从函数表达式返回的值?
问题描述
我正在尝试从onchange
事件中返回并访问动态选择的值。我知道如何使用函数声明,但我不清楚函数表达式。一点帮助将不胜感激。
js
//create select
var select = document.createElement('select');
select.setAttribute('id','select_month');
//onchange
select.onchange = function changeMonth(selectedmonth){
selectedmonth = this.value;//works well here
return selectedmonth;
};
var selectedmonth = changeMonth();//undefined
解决方案
changeMonth
是一个仅作用于函数本身的变量,因此对脚本的其余部分不可用。
即使它可用,也要意识到当 DOM 调用该函数时(当事件触发时),它会在this
绑定到 DOM 元素的情况下调用它。当您在代码中显式调用它时,您也应该这样做。
好消息是对函数的引用可以作为select.onchange
,所以使用它。这样你就可以同时解决这两个问题:
var selectedmonth = select.onchange(select);
推荐阅读
- excel - Excel:'Sumifs' 忽略 #n/a
- java - 如何修复 Selenium DesiredCapabilities 在与 WebdriverManager 和 ChromeOptions 一起使用时给出错误“未解析为类型”
- python - 有没有办法用模块中编写的 def 来保存 tkinter 按钮命令的结果?
- python - 如何在不使用 time.sleep 的情况下跟踪我在游戏中前进了多少秒?
- python - 有什么方法可以求和(1 到 n)并将其与总和(n+1 到列表末尾)进行比较?
- go - 防止 VSCode 在输入 Golang 导入时询问 GitHub 凭据?
- swift - 如何在 swift 中根据日期升序对 Tableview 行进行排序
- android - 使用房间库登录
- heroku - Heroku 似乎在 api-maintenance 部署后泄漏内存 - 启用 allow-multiple-sni-endpoints 功能
- flutter - 我怎样才能将照片保存在图库中?