javascript - 使用 html "data-"属性

标签 javascript html

考虑这样一行:

<div id='abc' onclick='DoSomething(this.id)'></div>

现在,假设它被扩展成更像这样的东西:

<div id='abc' data-something='whatever' onclick='DoSomething(this.id)'></div>

这里还没有功能上的区别,但这是我的问题。我正在寻找一种将“data-something”的值而不是 id 传递给 DoSomething 函数的方法。我似乎找不到这样做的方法?可能吗?

像下面这样的东西会很好,但当然它不是这样工作的。 (我包含它只是为了帮助说明预期目标。

<div id='abc' data-something='whatever' onclick='DoSomething(this.data-something)'></div>

最佳答案

你可以做到

DoSomething(this.dataset.something)

但通常建议将 javascript 部分和 HTML 分开,当您的元素具有 id 时,这尤其容易:

<div id='abc' data-something='whatever'></div>
<script>
    document.getElementById('abc').onclick = function(){
        DoSomething(this.dataset.something)
    }
</script>

在 Internet Explorer 上,support for dataset is incomplete .在 IE10- 上,您需要使用

DoSomething(this.getAttribute('data-something'))

关于javascript - 使用 html "data-"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17749860/

相关文章:

javascript - 有没有办法像默认导出一样使用 ES6 正常导出?

javascript - Offline.js 不起作用

javascript - eslint,异步 - 警告重复名称帖子

javascript - 尝试使用 JavaScript 从 azure 获取访问 token 时无法加载响应数据

javascript - 如果其中有 setTimeout,则不会调用 iOS 6 js 事件函数

java - 使用 JSOUP 解析表中的表

javascript - 在上一张幻灯片后继续滚动

javascript - 使用表格布置具有固定间距的正方形网格,其中每个正方形的宽度是屏幕宽度的百分比

javascript - ul 中的交换列表和事件元素位置保持不变

javascript - 从一个函数返回值到另一个函数