V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lbfeng
V2EX  ›  jQuery

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

  •  
  •   lbfeng · 2016-04-21 02:48:01 +08:00 · 2819 次点击
    这是一个创建于 3146 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    11 条回复    2016-04-22 02:26:34 +08:00
    lbfeng
        1
    lbfeng  
    OP
       2016-04-21 03:00:34 +08:00
    <div ... data-question-options="[]">
    <div ... data-question-options="[]">
    <div ... data-question-options="[]">
    lbfeng
        2
    lbfeng  
    OP
       2016-04-21 03:01:40 +08:00
    对比这两个
    <div ... data-question-options="[]">
    <div ... data-question-options="['Yes', 'No']">
    emric
        3
    emric  
       2016-04-21 03:02:46 +08:00
    通常这种问题都是弱智错误。
    先用 https://jsfiddle.net/ 写个 demo 吧。
    lbfeng
        4
    lbfeng  
    OP
       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
        5
    lbfeng  
    OP
       2016-04-21 03:15:48 +08:00
    , 也会引发错误。
    lbfeng
        6
    lbfeng  
    OP
       2016-04-21 03:17:02 +08:00
    有什么方法能把['Yes', 'No']转换成 array?
    emric
        7
    emric  
       2016-04-21 03:34:32 +08:00   ❤️ 1
    把他变成符合 json 规则的字符。 E.g: `<div data-test='["a", "b"]'>`
    jarlyyn
        8
    jarlyyn  
       2016-04-21 08:16:19 +08:00 via Android
    这不是应该用 attr 取么
    YuJianrong
        9
    YuJianrong  
       2016-04-21 10:55:03 +08:00
    问题在于为什么要用垃圾 jQuery 。
    Delbert
        10
    Delbert  
       2016-04-21 12:54:43 +08:00 via Android
    @lbfeng json 里面不应该用双引号吗?我 IDE 里面输入单引号文本就报错了。
    lbfeng
        11
    lbfeng  
    OP
       2016-04-22 02:26:34 +08:00
    @Delbert 对的,我用 jinja 显示这个 list, 出来的是单引号,再用 json.parse 变成 array.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1945 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:40 · PVG 08:40 · LAX 16:40 · JFK 19:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.