我想将一个数组传递给服务器端的 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/