$('.class').data({data-toggle: "whatever-value", data-target: "#id"});
我不断收到-
我最初尝试.attr
然后切换到.data
,因为我认为这会解决它。
有人可以帮助解决这个简单的问题吗?
由于
答案 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"}
来说确实是糖。这只是您必须采用这种令人厌恶的语法的许多情况之一。