Javascript 获取动态生成的下拉列表onchange和reuse函数的文本

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函数

我有以下元素,每个元素都是select元素的id,该元素将有一个动态生成的下拉列表:

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()
取回元素,这太复杂了。