javascript - 使用 data-value 获取 datalist 对象所选选项的 id

标签 javascript html html-datalist

我想获取数据列表对象上所选选项的 ID(数据值)。

我尝试使用 Javascript 函数获取 ID,并使用 this.dataset.value但我得到的结果未定义

function getIdOfDatalist(divid){
    console.log(document.getElementById(divid).dataset.value);
}
<datalist id="options">
    <option value="myoption one" data-value="1">
    <option value="myoption two" data-value="2">
    <option value="myoption three" data-value="3">
</datalist>
    
<input list="options" id="myoptions">
<button onclick="getIdOfDatalist('myoptions');">check</button>

我的错误是什么? (代码简单精简,JS在头部<script>)

最佳答案

如果稍微更改 HTML,您可以使用一种方法来避免自己循环项目。例如:

function getIdOfDatalist(listid){
  var listObj = document.getElementById(listid);
  var datalist = document.getElementById(listObj.getAttribute("list"));
  console.log(datalist.options.namedItem(listObj.value));
}
<datalist id="options">
  <option value="myoption one" name="myoption one" data-value="1">
  <option value="myoption two" name="myoption two" data-value="2">
  <option value="myoption three" name="myoption three" data-value="3">
</datalist>

<input list="options" id="myoptions">
<button onclick="getIdOfDatalist('myoptions');">check</button>

请注意,我向数据列表中的每个项目添加了“name”属性。

关于javascript - 使用 data-value 获取 datalist 对象所选选项的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54161041/

相关文章:

javascript - 使用客户端 Javascript 与本地网络上的设备通信

javascript - icloud.com上的 checkout 模糊效果是如何实现的?

javascript - 添加重定向 Javascript 代码后,Squarespace 网站无法在移动设备上加载

javascript - 基于 Canvas 的编辑器 - 如何?

html - Bootstrap 页脚不粘在页面底部

jquery - HTML5 datalist - 模拟点击事件暴露所有选项

javascript - 使用 JavaScript 在 IE9 中获取数据列表选项

php - vendor在web文件结构中是什么意思?

javascript - 预加载时顶部导航栏保持不变

html - 单击 HTML5 Datalist 选项时的 jQuery 事件