如何在对象属性名称中使用连字符?

时间:2014-04-05 03:29:47

标签: javascript

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

我不断收到-

的语法错误

我最初尝试.attr然后切换到.data,因为我认为这会解决它。

有人可以帮助解决这个简单的问题吗?

由于

2 个答案:

答案 0 :(得分:6)

如果您要设置/更新data-*属性,则在设置属性时需要引号:

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

否则它会像

一样解析它
data-toggle

含义

data - toggle

减去两个变量。

您还可以将.data()

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

但是它没有分配data-*属性,只是将数据存储在jQuery的存储系统中。

答案 1 :(得分:4)

只是要添加到已经指出的内容,在Javascript中,对象具有由任意字符串定义的属性。

obj.prop实际上只是obj["prop"]的糖,后者更具表现力,因为后者允许所有字符。同样,{prop: "val"}对于{"prop": "val"}来说确实是糖。这只是您必须采用这种令人厌恶的语法的许多情况之一。