Javascript 获取动态生成的下拉列表onchange和reuse函数的文本
我有以下元素,每个元素都是select元素的id,该元素将有一个动态生成的下拉列表:Javascript 获取动态生成的下拉列表onchange和reuse函数的文本,javascript,html,dom,onchange,Javascript,Html,Dom,Onchange,我有以下元素,每个元素都是select元素的id,该元素将有一个动态生成的下拉列表: const year = document.getElementById('year'); const brand = document.getElementById('brand'); const version = document.getElementById('version'); const model = document.getElementById('model'); 我有以下handle函数
const year = document.getElementById('year');
const brand = document.getElementById('brand');
const version = document.getElementById('version');
const model = document.getElementById('model');
我有以下handle函数,我想对它们中的每一个重复使用:
function handleChange() {
let selected = year.options[year.selectedIndex].text;
console.log(selected);
}
year.addEventListener('change', handleChange);
到目前为止,这是可行的,但是idk如何使handleChange()接受SELECT元素的id。我尝试了以下代码,但不正确
function handleChange(e) {
let id = e.target.id;
let selected = id.options[id.selectedIndex].text;
console.log(selected);
}
在这一点上,我试图避开JQuery。您只需要在更改事件回调函数中使用
this
,在您的例子中是handleChange
函数
这是您的代码应该如何编写的:
function handleChange() {
let selected = this.options[this.selectedIndex].text;
console.log(selected);
}
演示:
const year=document.getElementById('year');
年份。添加的清单(“变更”,手册变更);
函数handleChange(){
let selected=this.options[this.selectedIndex].text;
console.log(选中);
}
一
二
三
此
应该已经引用元素,无需按id查找内容。但是如果您显式访问id,该id课程没有任何选项
属性,它是纯文本。工作非常完美!我确信我需要得到元素的id才能工作…@szter为什么要得到id
?如果得到它,则需要再次使用getElementById()
取回元素,这太复杂了。