这两上方法都可以给选择集添加类,它们的区别是selection.classed 后面可以设一个布尔值,表示这个类是否开启。 这在需要根据条件来切换类的时候特别管用,如:
var isOpen = false;
d3.select('p').classed('open', isOpen)
selection.property可以获取一些selection.attr获取不到的属性值,如input的value属性,此属性不会在标签中显示。
<input id='fname' type='text' name='fname' />
seleciton.datum是对选择集所有元素都设置一个值,selection.data则会根据data里的索引来对应赋值
var a = [1,2,3,4,5]
d3.selectAll('p').datum(a) // 对于匹配的所有p标签都会绑定一个数据为a的值
d3.selectAll('p').data(a) // 匹配的第一个p绑定1,第二个p绑定2...