jquery data() 返回数据类型不统一

2016-04-21 02:48:01 +08:00
 lbfeng

$(this).data('question-options')

前两个返回为 array, 第三个返回 string. 这是为什么?怎么能让第三个也是 array?

2720 次点击
所在节点    jQuery
11 条回复
lbfeng
2016-04-21 03:00:34 +08:00
<div ... data-question-options="[]">
<div ... data-question-options="[]">
<div ... data-question-options="[]">
lbfeng
2016-04-21 03:01:40 +08:00
对比这两个
<div ... data-question-options="[]">
<div ... data-question-options="['Yes', 'No']">
emric
2016-04-21 03:02:46 +08:00
通常这种问题都是弱智错误。
先用 https://jsfiddle.net/ 写个 demo 吧。
lbfeng
2016-04-21 03:12:25 +08:00
@emric 搞明白了 data 会掉用 jQuery.parseJSON() 处理含有‘[’的字符串将其转换成 array 。但['Yes', 'No']中的 ' 会引发错误。

Uncaught SyntaxError: Unexpected token ' in JSON at position 1
lbfeng
2016-04-21 03:15:48 +08:00
, 也会引发错误。
lbfeng
2016-04-21 03:17:02 +08:00
有什么方法能把['Yes', 'No']转换成 array?
emric
2016-04-21 03:34:32 +08:00
把他变成符合 json 规则的字符。 E.g: `<div data-test='["a", "b"]'>`
jarlyyn
2016-04-21 08:16:19 +08:00
这不是应该用 attr 取么
YuJianrong
2016-04-21 10:55:03 +08:00
问题在于为什么要用垃圾 jQuery 。
Delbert
2016-04-21 12:54:43 +08:00
@lbfeng json 里面不应该用双引号吗?我 IDE 里面输入单引号文本就报错了。
lbfeng
2016-04-22 02:26:34 +08:00
@Delbert 对的,我用 jinja 显示这个 list, 出来的是单引号,再用 json.parse 变成 array.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/273257

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX