Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .attr与D3.js中的分类_Javascript_D3.js - Fatal编程技术网

Javascript .attr与D3.js中的分类

Javascript .attr与D3.js中的分类,javascript,d3.js,Javascript,D3.js,在d3中,什么时候使用合适 d3.select("foo").attr('class', 'bar'); 相对于 d3.select("foo").classed('bar', true); ? 是推荐还是预期不推荐使用?什么是行业标准?我认为分类是一种条件检查,例如: 要添加类,classed的第二个参数必须为true,如下代码所示: d3.selectAll(".bar") .classed("my-selector", true); 若要

在d3中,什么时候使用合适

d3.select("foo").attr('class', 'bar');
相对于

d3.select("foo").classed('bar', true);
?


是推荐还是预期不推荐使用?什么是行业标准?

我认为
分类
是一种条件检查,例如: 要添加类,classed的第二个参数必须为true,如下代码所示:

  d3.selectAll(".bar")
 .classed("my-selector", true);
若要删除类,要分类的第二个参数必须为false

   d3.selectAll(".bar")
  .classed("my-selector", false);
要将类翻转到相反的状态—如果它已经存在,则将其删除;如果它还不存在,则将其添加—可以执行以下操作之一

对于单个元素,代码可能如下所示:

var oneBar = d3.select(".bar")
oneBar.classed("my-selector", !oneBar.classed("my-selector"));
classed和attr具有同等的重要性,
attr
具有
classed
无法用于的其他用途。 没有合适的方法、建议或标准。这两种方法都是有效的,决定使用哪种方法取决于您的特定目的

classed(“foo”,true)
attr(“class”,“foo”)
之间的主要区别在于前者只会在类列表已经存在时修改它

如果指定了值,则通过设置class属性或修改classList属性来指定或取消指定选定元素上的指定CSS类名,并返回此选择。(强调矿山)

。。。而后者将覆盖它

让我们在一个非常简单的演示中展示差异

DOM中已存在具有指定类的段落。我们选择它们并在选择中使用
attr(“class”,“someClass”)
。然后,我们
console.log

var p=d3。选择全部(“p”);
p、 属性(“类”、“某类”);
p、 每个(函数(){
console.log(d3.select(this.attr(“类”))
})

此段落有一个foo类

此段落有一个分类栏

此段落有一个类baz