How to use hyphen in object property name?

后端 未结 2 1397
深忆病人
深忆病人 2021-01-18 01:56

$(\'.class\').data({data-toggle: \"whatever-value\", data-target: \"#id\"});

I keep getting syntax errors for the -

I originally t

相关标签:
2条回答
  • 2021-01-18 02:27

    Just to add to what's alredy been pointed out, in Javascript, objects have properties defined by arbitrary strings.

    obj.prop is really just sugar for obj["prop"], with the latter being more expressive because all characters are allowed in the latter. Likewise, {prop: "val"} is really sugar for {"prop": "val"}. This is just one of many cases where you'll have to resort to the desugared syntax.

    0 讨论(0)
  • 2021-01-18 02:33

    If you want to set/update a data-* attribute, you need quotes if you set the attribute:

    $('.class').attr({"data-toggle": "whatever-value", "data-target": "#id"});
    

    Otherwise it parses it like

    data-toggle
    

    meaning

    data - toggle
    

    subtracting two variables.

    You can also use .data() with

    $('.class').data({"toggle": "whatever-value", "target": "#id"});
    

    but that does not assign data-* attributes it just stores the data in jQuery's storage system.

    0 讨论(0)
提交回复
热议问题