wil*_*age 79 html javascript jquery json
好的,我想将一个非常基本的数组传递到jquery数据attrubute服务器端,如下所示:
<div data-stuff="['a','b','c']"></div>
Run Code Online (Sandbox Code Playgroud)
然后像这样后退:
var stuff = $('div').data('stuff');
alert(stuff[0]);
Run Code Online (Sandbox Code Playgroud)
为什么这似乎警告'['而不是'a'(参见JSfiddle链接)
JSFiddle链接: http ://jsfiddle.net/ktw4v/3/
Aln*_*tak 135
它将您的变量视为一个字符串,其中的第0个元素是[.
发生这种情况是因为您的字符串不是有效的JSON,它应该使用双引号作为字符串分隔符而不是单引号.然后,您必须使用单引号来分隔整个属性值.
如果您修改了引号,则原始代码可以正常工作(请参阅http://jsfiddle.net/ktw4v/12/)
<div data-stuff='["a","b","c"]'> </div>
var stuff = $('div').data('stuff');
Run Code Online (Sandbox Code Playgroud)
当jQuery在数据属性中看到有效的JSON时,它会自动为您解压缩它.
Joh*_*een 12
将其声明为属性意味着它是一个字符串.
所以stuff[0]相当于:var myString = "['a','b','c']"; alert(myString[0]);
你需要让它看起来像这样:
<div data-stuff="a,b,c"></div>
var stuff = $('div').data('stuff').split(',');
alert(stuff[0]);
Run Code Online (Sandbox Code Playgroud)
撤回:jQuery的解析失败,因为它不符合parseJSON的规则.
但是,我会支持我的解决方案.其他方面的某些方面并不理想,就像这种解决方案在某些方面不太理想一样.一切都取决于你的范例.
| 归档时间: |
|
| 查看次数: |
78698 次 |
| 最近记录: |