javascript - 如何使用 JAVASCRIPT 获取 <option> 标签内自定义属性的值

标签 javascript html

我的下拉菜单有一个自定义属性,我想做的是在标签中显示自定义属性值。

这是一个代码片段:

function setDesignation(d){
  var designation = d.getAttribute("data-designation");
  if(designation != null){
  	document.getElementById('designation').innerHTML = designation;
  }else{
  	document.getElementById('designation').innerHTML = 'Name';
  }
  //alert(d.getAttribute("data-designation"));
}
<div>
    <select onchange="setDesignation(this)">
        <option value="1" data-designation="President">Mathew</option>
        <option value="2" data-designation="CEO">Mark</option>
        <option value="3" data-designation="Manager">Luke</option>\
        <option value="4" data-designation="">John</option>
    </select>
</div>

<div>
    <label id="designation">Designation</label>
</div>

问题是我无法获取自定义属性的值,即“data-designation”。我试图将它放在 alert() 方法中以查看值,它显示 “null”。即使我删除了 if else 语句,它仍然返回 null。我不知道代码有什么问题,所以请帮助我。

我试图找到解决方案,但我找到的都是 jQuery。我不擅长 jQuery,所以我想要一个纯 JAVASCIPT 解决方案。

附言如果您的解决方案是将其存储在 value 属性中,那不是我要找的。

最佳答案

您不需要 selects 数据属性,您需要 selected options 数据属性:

var designation = d.options[d.selectedIndex].getAttribute("data-designation");

关于javascript - 如何使用 JAVASCRIPT 获取 <option> 标签内自定义属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43436141/

相关文章:

javascript - 在 Typescript 中,类型和接口(interface)有什么区别?

javascript - D3 中多线图的工具提示

javascript - 在高度和宽度上用另一个 div 填充一个 div

php - HTML 重定向到原始页面

javascript - Bootstrap中点击时如何防止下拉菜单消失?

javascript - 以 JavaScript 中的对象数组为目标

html - jQuery 食谱数量计算器

javascript - 我怎样才能等到某些东西不为空然后运行该函数

javascript - 可以检查Listview(jQuery Mobile)是否包含Collapsible?

html - 在此示例中,如何使边框隐藏在 h3 后面?