lbfeng
V2EX  ›  jQuery

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

  •  
  •   lbfeng · Apr 21, 2016 · 3775 views
    This topic created in 3850 days ago, the information mentioned may be changed or developed.

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

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

    11 replies  •  2016-04-22 02:26:34 +08:00
    lbfeng
    lbfeng
    OP
    Apr 21, 2016
    1
    <div ... data-question-options="[]">
    <div ... data-question-options="[]">
    <div ... data-question-options="[]">
    lbfeng
    lbfeng
    OP
    Apr 21, 2016
    2
    对比这两个
    <div ... data-question-options="[]">
    <div ... data-question-options="['Yes', 'No']">
    emric
    emric
    Apr 21, 2016
    3
    通常这种问题都是弱智错误。
    先用 https://jsfiddle.net/ 写个 demo 吧。
    lbfeng
    lbfeng
    OP
    Apr 21, 2016
    4
    @emric 搞明白了 data 会掉用 jQuery.parseJSON() 处理含有‘[’的字符串将其转换成 array 。但['Yes', 'No']中的 ' 会引发错误。

    Uncaught SyntaxError: Unexpected token ' in JSON at position 1
    lbfeng
    lbfeng
    OP
    Apr 21, 2016
    5
    , 也会引发错误。
    lbfeng
    lbfeng
    OP
    Apr 21, 2016
    6
    有什么方法能把['Yes', 'No']转换成 array?
    emric
    emric
    Apr 21, 2016❤️1
    7
    把他变成符合 json 规则的字符。 E.g: `<div data-test='["a", "b"]'>`
    jarlyyn
    jarlyyn
    Apr 21, 2016 via Android
    8
    这不是应该用 attr 取么
    YuJianrong
    YuJianrong
    Apr 21, 2016
    9
    问题在于为什么要用垃圾 jQuery 。
    Delbert
    Delbert
    Apr 21, 2016 via Android
    10
    @lbfeng json 里面不应该用双引号吗?我 IDE 里面输入单引号文本就报错了。
    lbfeng
    lbfeng
    OP
    Apr 22, 2016
    11
    @Delbert 对的,我用 jinja 显示这个 list, 出来的是单引号,再用 json.parse 变成 array.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5667 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 03:11 · PVG 11:11 · LAX 19:11 · JFK 22:11
    ♥ Do have faith in what you're doing.