如何将HTML5数据属性写入JavaScript数组元素
我有以下代码: HTML: $value变量现在包含一个带有一个元素的数组。此元素的值为“15,17”。我想更改HTML中数据测试的值,使$value包含一个包含两个元素“15”和“17”的数组。在我的环境中,我只能更改span的数据测试属性。我无法更改JavaScript 结果当前的样子:[“15,17”] 但我需要它是:[“15”,“17”] 有办法吗 编辑1:我想再次突出显示以下部分:我不能更改JavaScript,只能更改HTML如何将HTML5数据属性写入JavaScript数组元素,javascript,jquery,arrays,html,Javascript,Jquery,Arrays,Html,我有以下代码: HTML: $value变量现在包含一个带有一个元素的数组。此元素的值为“15,17”。我想更改HTML中数据测试的值,使$value包含一个包含两个元素“15”和“17”的数组。在我的环境中,我只能更改span的数据测试属性。我无法更改JavaScript 结果当前的样子:[“15,17”] 但我需要它是:[“15”,“17”] 有办法吗 编辑1:我想再次突出显示以下部分:我不能更改JavaScript,只能更改HTML 编辑2:我从下面的答案和评论中猜测,有了这些要求,就不可
编辑2:我从下面的答案和评论中猜测,有了这些要求,就不可能达到我所期望的结果。您需要将值存储为序列化数组,换句话说,如下所示:
<span data-test="[15, 17]">
您需要以JSON格式存储数组 看这把小提琴: 正确的数据值应为:[15,17]
<span id="demo" data-test="[15, 17]"></div>
正确的答案是:如果您不能更改Javascript,那么您想要什么是不可能的
但是,使用javascript的一种方法是:
var array = $('#demo').data('test').split(',');
示例:(别忘了打开控制台。)你可以用javascript split()方法完成:如果你真的“无法更改javascript”,那么,不行。你无法得到你想要的结果。Rory的答案会给你一个数组中的一个数组,但这是你能得到的最接近的结果。检查我的答案@user3252254如果你不能改变javascript,你不可能想要什么。注意,出于某种原因,OP可以改变HTML,但不能改变javascript-所以$value=[$(object)。数据('test')]
将运行,给出[[15,17]]
@PaulRoub很好。如果可能的话,我强烈建议更改JS。你链接到OP的原始小提琴,没有任何更改。这里的代码也存在同样的问题,导致OP全部采用黑体——JS无法更改。您将获得嵌套数组。嵌套数组不是possible@PaulRoub换了小提琴。您是对的,它将是一个嵌套数组,但这仍然是从提供的js的data属性获取数组的唯一方法。
var value = $('span').data('test'); // == Array
console.log(value.length); // = 2
<span id="demo" data-test="[15, 17]"></div>
var array = $('#demo').data('test').split(',');