javascript - 为什么我的 .data() 函数返回 [ 而不是数组的第一个值?

标签 javascript jquery html json

我想将一个数组传递给服务器端的 jQuery 数据属性,然后像这样检索它:

var stuff = $('div').data('stuff');
alert(stuff[0]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<div data-stuff="['a','b','c']"></div>

为什么这似乎是警告 '[' 而不是 'a'(请参阅 JSFiddle 链接)

JSFiddle 链接: http://jsfiddle.net/ktw4v/3/

最佳答案

它将您的变量视为一个字符串,其第零个元素是 [.

这是因为您的字符串不是 valid JSON ,它应该使用双引号而不是单引号作为字符串分隔符。然后,您必须使用单引号来分隔整个属性值。

如果你修正了引号,你的原始代码就可以工作(见 http://jsfiddle.net/ktw4v/12/)

<div data-stuff='["a","b","c"]'> </div>

var stuff = $('div').data('stuff');

当 jQuery 在数据属性中看到有效的 JSON 时,它会 automatically unpack it for you .

关于javascript - 为什么我的 .data() 函数返回 [ 而不是数组的第一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6071618/

相关文章:

javascript - "return false"在某些浏览器中被忽略,因为链接使用 JavaScript 动态添加到 DOM

javascript - jQuery Datatable - 来自 ajax 调用的错误消息

html - 如何使用 CSS 自动将 » (») 添加到 <li> 元素?

javascript - 尝试让粘性栏悬停在滚动页脚上方

javascript - Canvg 不支持 CSS

JavaScript 复选框

javascript - 自动滚动水平 div

jquery - 如何选择除特定字段之外的整个文档?

jquery - jQuery 每个函数的作用域

javascript - jQuery 函数在连接字符串后返回 [object Object]