javascript - 在没有 jQuery 的情况下从数据属性中获取数组

标签 javascript jquery arrays html custom-data-attribute

我想使用一个数组来使用数据属性传递。 在我的 HTML 标签中我有这个属性:

data-toshow='["tblp"]'

我在使用的时候可以通过jQuery访问和使用

$().data('toshow')

但是当使用 dataset.toshow 时,我没有得到相同的结果。我实际上没有得到数组。

有人能给我解释一下吗?并告诉我如何在不使用 jQuery 的情况下做同样的事情?

最佳答案

jQuery 的 .data() 方法会自动尝试将自定义数据属性中的字符串转换为它看起来的任何类型(在本例中为数组)。 JavaScript 只是将其视为一个字符串,因此您需要解析该字符串以获得与 jQuery 相同的数组输出。例如:

// jQuery approach
const jqtest = $('div').data('toshow');
console.log(jqtest);

// Plain JavaScript approach
const jstest = JSON.parse(document.querySelector('div').dataset.toshow);
console.log(jstest);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-toshow='["tblp"]'></div>

关于javascript - 在没有 jQuery 的情况下从数据属性中获取数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53636026/

相关文章:

javascript - Selenium 中的 Xpath

javascript - 如何在点击浏览器刷新按钮时弹出警告框?

javascript - 在ElasticSearch上的嵌套查询

javascript - 更改 href 的内容

javascript - 从 javascript 动态生成的复选框数组不显示选中了哪个复选框

javascript - 使用 AJAX 在 elasticsearch 中查询动态聚合

javascript - jQuery 表单回调兼容性问题

c - C中指针的问题

无法弄清楚我的代码有什么问题:\(Array subtraction in C)

C++不完整的类型和转换错误