我想将一个数组传递给服务器端的 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/
原文由 wilsonpage 发布,翻译遵循 CC BY-SA 4.0 许可协议
它将您的变量视为一个字符串,其第零个元素是
[
。发生这种情况是因为您的字符串不是 有效的 JSON ,它应该使用双引号而不是单引号作为字符串分隔符。然后您必须使用单引号来分隔整个属性值。
如果您修复了引号,您的原始代码就可以工作(请参阅 http://jsfiddle.net/ktw4v/12/ )
当 jQuery 在数据属性中发现有效的 JSON 时,它会 自动为您解包。