D3.js 使用D3 Attr时如何维护camelCase

D3.js 使用D3 Attr时如何维护camelCase,d3.js,D3.js,我有以下代码 let row = svg.selectAll("div") .data(cleanData) .enter() .append("div") .attr("fxLayout", "row"); 这非常有效,除了fxLayout出来的fxLayout 我可以这样做,但保留属性的大小写吗 每个评论 我试着用下面的 >row.node().attributes NamedNodeMap {0

我有以下代码

let row = svg.selectAll("div")
           .data(cleanData)
           .enter()
           .append("div")
           .attr("fxLayout", "row");
这非常有效,除了
fxLayout
出来的
fxLayout

我可以这样做,但保留属性的大小写吗

每个评论

我试着用下面的

>row.node().attributes
NamedNodeMap {0: class, 1: fxlayout, length: 2}
>row.node().setAttribute("NewThen","123")
undefined
>row.node().attributes
NamedNodeMap {0: class, 1: fxlayout, 2: newthen, length: 3}

因此,正如您所看到的,即使访问DOM元素,似乎仍将其设置为错误。

它很可能是正确的。开发工具倾向于将属性名称显示为所有小写。尝试类似于
d3的操作。选择(“div”).node().attributes
,这将显示驼峰案例名称。顺便说一句,您对
.append()
的使用不正确。在D3中,与jQuery相反,您不能在一个步骤中追加元素并设置类。您需要执行
.append(“div”).attr(“class”,“row”)
.append(“div”).classed(“row”,true)
。请参阅我的更新,谢谢您的想法。请查看。因为您处理的是HTML,所以属性将被视为不区分大小写。您的
fxLayout
实际上是什么?它绝对不是标准的HTML属性。不,它不是标准的,它是新材质Flex布局的Angular 2指令