Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将HTML5数据属性写入JavaScript数组元素_Javascript_Jquery_Arrays_Html - Fatal编程技术网

如何将HTML5数据属性写入JavaScript数组元素

如何将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:我从下面的答案和评论中猜测,有了这些要求,就不可

我有以下代码:

HTML:

$value变量现在包含一个带有一个元素的数组。此元素的值为“15,17”。我想更改HTML中数据测试的值,使$value包含一个包含两个元素“15”和“17”的数组。在我的环境中,我只能更改span的数据测试属性。我无法更改JavaScript

结果当前的样子:[“15,17”]

但我需要它是:[“15”,“17”]

有办法吗

编辑1:我想再次突出显示以下部分:我不能更改JavaScript,只能更改HTML


编辑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(',');