Javascript Select元素未附加addEventListener
我正在尝试创建一个select元素并向其中添加一个“input”事件。使用JavaScript的所有内容如下所示:Javascript Select元素未附加addEventListener,javascript,html,Javascript,Html,我正在尝试创建一个select元素并向其中添加一个“input”事件。使用JavaScript的所有内容如下所示: 功能显示选择选项(str){ 警报(str); } var list=document.createElement(“选择”); list.id=“listId”; list.addEventListener('input',showSelectedOption(this.selectedIndex)); 对于(变量i=0;i
功能显示选择选项(str){
警报(str);
}
var list=document.createElement(“选择”);
list.id=“listId”;
list.addEventListener('input',showSelectedOption(this.selectedIndex));
对于(变量i=0;i<3;i++){
var option=document.createElement(“选项”);
option.value=“无”;
option.text=“text”;
列表。追加子项(选项);
}
文件.正文.附件(列表)代码>有几个问题
您没有绑定showSelectedOption
函数,而是调用它并使用其返回值(未定义的undefined
)作为事件处理程序
因此,在不调用它的情况下传递showSelectedOption
然后,您必须使用触发输入
事件时传递给函数的事件
,在方法中找到该元素的selectedIndex
功能显示选择选项(事件){
var元素=event.target,
index=element.selectedIndex,
值=元素。选项[索引]。值;
警报(值);
}
var list=document.createElement(“选择”);
list.id=“listId”;
list.addEventListener('input',showSelectedOption);
对于(变量i=0;i<3;i++){
var option=document.createElement(“选项”);
option.value=“无”;
option.text=“text”;
列表。追加子项(选项);
}
文件.正文.附件(列表)
您可以改为使用setAttribute
并将oninput
属性的值设置为字符串(不是函数)showSelectedOption(this.selectedIndex)
功能显示选择选项(str){
警报(str);
}
var list=document.createElement(“选择”);
list.id=“listId”;
list.setAttribute('oninput',“showSelectedOption(this.selectedIndex)”);
对于(变量i=0;i<3;i++){
var option=document.createElement(“选项”);
option.value=“无”;
option.text=“项目”+i;
列表。追加子项(选项);
}
文件.正文.附件(列表)代码>谢谢,这正是我要找的!嗨,它起作用了。谢谢但是,当我们检查元素时,在元素的属性处看不到“oninpu”事件list@Jas实际上,当使用addEventListener
时,它不会在检查器上显示为oninput
。但是请记住,您只能在每个元素上添加一个oninput
,而使用addEventListener