将动态属性名称添加到选择中
Adding a dynamic attribute name to a selection
我有这个:
g.append(function(d) {
return document.createElementNS("http://www.w3.org/2000/svg", d.shape);
})
其中,d.shape
可以是circle
或polygon
。现在,根据形状,我想添加一个属性。对于圆形:
.attr('r', 12)
对于多边形:
.attr('points', '05,30 15,10 25,30'))
但是我不知道如何添加这个变量对属性名称/值。有可能吗?这里有一个相关的jsbin。
我会为此使用一个选择过滤器,过滤元素的nodeName属性:
d3.selectAll("top_level_selector") //or use existing selection from appending
.filter(function(d,i){
return this.nodeName == 'circle';
})
.attr("r", 12);
-https://github.com/mbostock/d3/wiki/Selections#wiki-过滤
或者可能只是在属性函数内部检查正确的节点类型:
selection
.attr('r',function(d,i){
if(this.nodeName =='circle'){ return 12 }
});
我不是肯定的,但我认为当它试图将未定义的"r"属性分配给非圆元素时(对于圆上的"点"等等),这不会带来问题。
相关文章:
- 将用户选择添加到数组中
- JQuery未选择添加的元素
- 根据用户的下拉选择添加表单字段
- 向选择添加标签
- 尝试在鼠标悬停时为Wordpress中的下拉菜单选择添加突出显示
- 选择 2 添加其他参数以选择选项
- Jquery 可以选择添加回调
- 如何在不按 DOM 顺序排序的情况下将 jquery 选择添加到一起
- 使用 jQuery.find 选择添加的图像进行 css 操作不起作用
- 角度选择添加未定义的选项
- 引导-选择添加项目并选择它
- 根据表单选择添加表单字段
- 在单选按钮选择上显示表,然后将单选按钮值传递给表中的字段,选择添加更多,然后附加到现有表
- 不能选择添加的元素
- 我需要创建一个多选项选择页面,其中每个选择添加或减去产品的价格
- 可以't选择添加的jQuery
- Jquery复选框上的选择添加一个名称属性和增量在多个选择
- 选择添加任何自定义值的框
- 如何从用户接收到的输入中为html选择添加一个选项
- 当选择添加时,使购物车数量计数器显示添加的产品