javascript - 如何在触发 "option"事件监听器后获取 "change"标记的自定义属性?

标签 javascript html

我的 HTML:

<select>
    <option customAttr="foo">Foo Text</option>
    <option customAttr="bar">Bar Text</option>
</select>

我的JS:

selectElement.addEventListener("change",function(){
    console.log(this.getAttribute("customAttr"));
});

这只记录null。为什么?如何让它记录 customAttr 的值?

最佳答案

您必须像下面这样定位所选选项:

var selectElement = document.querySelector('select');
selectElement.addEventListener("change",function(){
  var option = this.options[this.selectedIndex];
  console.log(option.getAttribute("customAttr"));
});
<select>
  <option customAttr="foo">Foo Text</option>
  <option customAttr="bar">Bar Text</option>
</select>

关于javascript - 如何在触发 "option"事件监听器后获取 "change"标记的自定义属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48454359/

相关文章:

html - 悬停框位置问题

javascript - Android 输入日期字段值未清除

php - 如何防止表单在无结果返回后重置?

javascript - 如何阻止按钮上的动画影响按钮的悬停或一般功能

javascript - 选项标签 : how to show multiple classes

javascript - 使信号器生成的代理中心 url 动态

javascript - 替换方法 - 需要正则表达式转义吗?

javascript - 使用忽略 html 标签的正则表达式搜索文本

javascript - 在 Sharepoint 工作流表单中,如何在单击开始或取消后关闭表单

javascript - 如果我们在 JavaScript 中使用逗号,是否能保证哪个变量将首先被初始化?